Как удалить поддерево в QAbstractItemModel?

213
14 сентября 2017, 17:23

есть дерево элементов

*
__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) ???
READ ALSO
C++ самый простой способ прочитать бинарный файл в unsigned char массив

C++ самый простой способ прочитать бинарный файл в unsigned char массив

Какой самый простой способ чтения бинарного файла вместе со всеми его байтами (нулевыми тоже) в unsigned char массив и при этом узнать его длину?

196
Как выбрать число слагаемых?

Как выбрать число слагаемых?

Пользователь сам выбирает число элементов массива, дальше, после ввода элементов пользователь выбирает сумму (больше 10), далее вводит число...

291
c++ программа не создаёт файл

c++ программа не создаёт файл

Обычная программа на С++ Код таков:

196
Запомнить cookie по клику

Запомнить cookie по клику

Здравствуйте! Имеется код:

270