Привет, ЛОР.
Есть кутешная модель, унаследованная от QAbstractItemModel. Поставляет данные для дерева. Дошёл до удаления.
Насколько я понимаю:
-
В принципе, все эти
begin*Rows/end*Rowsнужны исключительно для того, чтобы фрагментарно обновлять данные, не перерисовывая View целиком, и если данных немного, можно вместо них после изменения данных просто сделать модели refresh и не заморачиваться с индексами. (Правда, в случае дерева при этом схлопываются все узлы, открытые пользователем, что неудобно для последнего. С таблицей проще.) -
Если я всё-таки решил сделать хорошо и использовать beginRemoveRows… у него есть параметры first и last. Если массив индексов не сплошной (т.е. оператор выделил несколько произвольных узлов через Ctrl+ЛКМ), единственный путь – это вызывать пару beginRemoveRows/endRemoveRows для каждого удаляемого узла по очереди и между ними осуществлять удаление по одному узлу.
Я всё правильно понял?
P.S. Времена нынче трудные, многие ресурсы по Qt либо скончались (как некогда прекрасный prog.org.ru), либо недоступны из России. Из доступного есть, например, статья на сайте @Xintrea, но он работу с множеством записей не рассматривает, соответственно, у него везде просто first==last, и не дерево, а таблица (в случае дерева интересно заполнение первого параметра). Есть места, где можно поговорить по Qt, кроме ЛОРа? (Ну кроме ИИ, разумеется – он часто помогает в практических вопросах, но вот в труднопроверяемых концептуальных вещах всё-таки лучше говорить с людьми – галлюцинации никто не отменял.)






