Russian Qt Forum

Qt => Model-View (MV) => Тема начата: BuRn от Август 02, 2015, 17:12



Название: removeRow и обновление индекса
Отправлено: BuRn от Август 02, 2015, 17:12
Добрый день! Допустим я удаляю 1 элемент, у которого был индекс 0, удаляю так:
Код:
    Q_UNUSED(parent);
    beginRemoveRows(QModelIndex(), row, row);
    _contacts.removeAt(row);
    endRemoveRows();
    return true;
Обновятся ли автоматом индексы элементов? Т.е. станет ли элемент с индексом 1 элементом с индексом 0.


Название: Re: removeRow и обновление индекса
Отправлено: Авварон от Август 02, 2015, 18:04
Непонятно. Если вы имеете виду, обновятся ли сохраненные объекты QModelIndex, то нет, для этого нужны QPersistentModelIndex. Если вы имеете ввиду что-то другое, то мой ответ - хз.


Название: Re: removeRow и обновление индекса
Отправлено: BuRn от Август 02, 2015, 18:15
Непонятно. Если вы имеете виду, обновятся ли сохраненные объекты QModelIndex, то нет, для этого нужны QPersistentModelIndex. Если вы имеете ввиду что-то другое, то мой ответ - хз.
Поясню, я биндюсь на индекс (index) в qml. На ==0, так вот, когда только модель построилась все хорошо. Как только я удаляю 0 элемент из модели, мое условие перестает работать(index==0), что намекает на то, что элемента с индексом 0 не существует, т.е. элемент с индексом 1 не стал элементом с индексом 0, мне не понятно, либо я что-то делаю не так и не правильно удаляю, либо надо послать какой-то доп сигнал что бы обновить эти индексы .


Название: Re: removeRow и обновление индекса
Отправлено: Авварон от Август 02, 2015, 21:15
Ну вы уточняйте что имеете дело с qml. Я с ним дела не имел, поэтому как там модели вкорячиваются, не шарю.


Название: Re: removeRow и обновление индекса
Отправлено: Fregloin от Август 03, 2015, 10:28
смотрите сигнал rowsRemoved...
если вы храните экземпляры QModelIndex то тут я думаю что автоматом они не инедксируются.