Russian Qt Forum

Qt => Model-View (MV) => Тема начата: UVV от Август 20, 2014, 23:59



Название: getIndexForData()
Отправлено: UVV от Август 20, 2014, 23:59
Привет.
Делаю вот такой вот метод:
Код:
QModelIndex MyModel::getIndexForData(const QString& data)
{
   QModelIndex index;

   // search in internal data
   int listIndex = myList.indexOf(data);
   if (-1 != listIndex) {
      index = createIndex(listIndex, 0, DataItem);
   }

   return index;
}

Т.е. по сути createIndex уже вызывался для этих данных, когда они были добавлены в модель. Безопасно ли повторное использование createIndex в этом случае или есть другой способ вернуть индекс по данным?


Название: Re: getIndexForData()
Отправлено: Пантер от Август 21, 2014, 07:32
А в чем проблема? Хоть тыщу раз вызови этот createIndex.


Название: Re: getIndexForData()
Отправлено: UVV от Август 21, 2014, 08:38
А в чем проблема? Хоть тыщу раз вызови этот createIndex.
Проблемы нет, хотел уточнить можно ли так делать несколько раз для одной и той же строчки )


Название: Re: getIndexForData()
Отправлено: Fregloin от Август 24, 2014, 09:13
ну а как иначе, вы передаете копию индекса, который потом удалится, при вызове вашей функции создаете каждый раз новый индекс. Раньше я делал через ссылки, но напоролся на грабли, теперь возвращаю копии. Так безопаснее, хотя может не так эффективнее.