Russian Qt Forum

Qt => Общие вопросы => Тема начата: demaker от Сентябрь 16, 2013, 14:32



Название: QModelIndex::sibling(row,column)
Отправлено: demaker от Сентябрь 16, 2013, 14:32
Скажите
если у меня есть элемент (у него есть QModelIndex index)
то
Код:
int row = index.row();
int column = index.column();
row--;
QModelIndex siblingIndex = index.sibling(row,column);

Вернет мне индекс элемента, который находится перед текущим индексом?


Название: Re: QModelIndex::sibling(row,column)
Отправлено: demaker от Сентябрь 16, 2013, 14:36
И скажите после перезагрузки модели
все индексы, присвоенные элементам, обновляются ?


Название: Re: QModelIndex::sibling(row,column)
Отправлено: Bepec от Сентябрь 16, 2013, 14:39
Насколько я помню, индексы могут меняться после каждого действия. Могу и ошибаться.


Название: Re: QModelIndex::sibling(row,column)
Отправлено: mutineer от Сентябрь 16, 2013, 14:43
Индексы ведут себя так, как ты реализуешь в методе index()


Название: Re: QModelIndex::sibling(row,column)
Отправлено: demaker от Сентябрь 16, 2013, 14:53
Индексы ведут себя так, как ты реализуешь в методе index()

А если я делаю перезагрузку модели
Код:
beginResetModel();
endResetModel();

то,соответственно старых индексов у элементов модели не будет.
Будут новые,правильно?


Название: Re: QModelIndex::sibling(row,column)
Отправлено: mutineer от Сентябрь 16, 2013, 15:00
Зависит все от того, как ты создаешь индексы в index(...). Если ты ресетишь модель и загружаешь в нее те же данные в том же порядке, то индексы тоже могут остаться теми же