TL; DR : Как я могу изменить структуры данных резервного копирования для подкласса o QAbstractItemModel
за пределами функций beginInsertRows
/ endInsertRows
, если можно переместить фактическое изменение массива резервного копирования до или после него?Это необходимо, потому что структура вспомогательных данных часто модифицируется через собственный интерфейс, и QAbstractItemModel
служит просто его представлением для интеграции в Qt GUI.
У меня есть определенная древовидная модель данных в моем приложении.И у меня есть модель данных Qt, унаследованная от модели QAbstractItem, чтобы связать ее с управлением деревом Qt.Базовая модель данных изменяется независимо, поскольку использование ее повсеместно в приложении было бы слишком громоздким.
Сама проблема: базовая модель данных генерирует сигнал при изменении дочернего набора одного из его элементов.Я связываю модель данных Qt с этим сигналом.И только удалить индекс, который представляет этот элемент.Сам элемент все еще существует в исходном массиве и удаляется только после завершения emit.Это заставляет Qt пытаться ссылаться на этот же индекс в следующей итерации цикла событий, когда он содержит указатель на уже удаленную сущность.
Вопрос: есть ли способ правильно обновить индексы в модели данных Qt, когда актуальноНа хранение данных может повлиять какой-то внешний сигнал или код?Документация говорит, что добавление / удаление / перемещение элементов разрешено только между соответствующими начальными / конечными вызовами.Но это было бы очень громоздко, если вообще возможно в моем случае.