| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Переход на новый индекс после удаления |
| Автор: Brodyaga 30.5.2011, 14:09 |
| Всем привет! У меня имеется модель вложенная в прокси модель для сортировки. Прокси модель назначена представлению (QTreeView) К примеру в одном из узлов дерева есть 10 элементов. Стою на 5 элементе, удаляю его, а выделение перемещается на 9, хотя по уму должно перемещаться на следующую элемент за удаляемым (на 6). Правда, если бы не было прокси модели, оно и перемещалось бы на следующий, но для прокси модели (после сортировки) это не следующий индекс, а 9 . Вопрос: как используя прокси модель после удаления правильно перейти на следующий элемент? |
| Автор: Brodyaga 30.5.2011, 16:21 | ||
Вроде разобрался, что нужно перед удаление запоминать следующий индекс за удаляемым и затем после удаления перемещатьсяна него:
Теперь проблема встала в следующем: после извлечения из persistentModelIndex'а, обычного индекса, он не всегда ссылается на тот объект, на который ссылался, до добавления в persistentModelIndex. Посмотрите пожалуйста кто знает, что я делаю не правильно? |
| Автор: Greeneyed 9.6.2011, 21:25 | ||
А почему бы не сделать так?
С QTableView и QListView это работало. |
| Автор: Brodyaga 10.6.2011, 14:13 | ||
У меня QTreeView, а там нужно ещё родителя знать. В итоге я сделал примерно также, только QPersistentModelIndex'ом всеровно воспользовался для записи туда этого самого родительского индекса, а не следующего индекса за удаляемым. |