@Mercury13
Программист на «си с крестами» и не только

QAbstractItemModel: что делать, если при удалении у всех братьев/сестёр меняется internalPointer?

Есть кэш, задача которого — вывести некий срез данных в QTreeView. В каждом элементе — динамический массив сыновей. Не указателей, а самих сыновей.
QModelIndex содержит internalPointer’ом указатель на элемент.
Один из элементов приходится удалять. В таком случае мы запускаем beginRemoveRows(), уничтожаем элемент, endRemoveRows(). Вылет. Если делать beginResetModel/endResetModel — всё в порядке. Видимо, это связано с тем, что у индексов-братьев и сестёр заодно меняется internalPointer.
Что делать?
(Раньше живые данные были объединены с кэшем, в каждом элементе — динамический массив указателей, всё работало. Потребовалось разделить — нужны хитрые срезы наподобие классификации товаров.)

UPD. Большую часть проблем разрешил, осталось одно: есть же выделенный объект — как преобразовать индекс?
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ответы на вопрос 1
@koronabora
Человек
Чем хранение указателей не устраивает?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы