есть дерево элементов
*
__1
____1-1
__2
____2-1
______2-1-1
____2-2
выделен * удаляю 2 узел. два случая:
1) узел 2 не развернут (свернуты абсолютно все элементы в treeView)
2) узел 2 развернут ( или развернуты его под-узлы)
в первом случае удалил 2 узел, и тут же добавил, проблем никаких нет. во втором - удалил второй узел, добавил его тут-же, все вылетело,
parent - узел на котором стоим (*) (у него тоже есть парент) удаляю так:
1 -
parentIndex = createIndex(parent->getParent()->indexOfChild(parent), 0, parent);
beginRemoveRows(parentIndex, 0, count - 1);
endRemoveRows();
проще говоря beginremoveRows(*, 0, 0);
2 - удаляю из контейнера (данные из контейнера удаляются, я проверял)
по сути, я вначале ужимаю/добавляю индексы, а только потом добавляю/удаляю элементы. Как правильно удалять индексы? они могли не удалиться? Возможно надо делать
beginremoveRows(*, 1, 1) ???
Сборка персонального компьютера от Artline: умный выбор для современных пользователей