Приветствую, дорогих форумчан!
Есть одна функция, каторую я незнаю как осуществить так как это принято в мире Qt, суть функции состоит в следующем:
У меня есть представление (для иерархической цепи, объект класса QTreeView) и несколько моделей (объекты наследника класса QAbstractItemModel), программа многорежимная - так вот, как только сменяеться режим (т.е. представление меняет модель), состояния раскрых и выделенных элементов теряються...
Как сохранять состояние представления элементов модели, перед тем как сменить режим, и затем при переходе в предыдущий режим работы программы - сново загрузить состояния элементов?
Мне советовали поработать с QItemSelectionModel, я понял для чего он предназначен, но пользоваться им не получаеться...
К примеру:
QItemModel *qiModel = new QItemModel(this); // Создаем объект, класса наследника QAbstractItemModel
QItemSelectionModel *qisModel = new QItemSelectionModel(qiModel); // Создаем объекь хранитель выделенных элементов, передавая ему указатель на модель
QTreeView *qtView = new QTreeView(this); // Создаем объект представления
qtView->setModel(qiModel); // Указываем модель представления
qtView->setSelectionModel(qisModel); // Указываем хранитель состояния элементов
// Затем, при смене режима заменяем модель и хранителя у представления (последнии предположим ранее созданы)
qtView->setModel(qiLastModel);
qtView->setSelectionModel(qisLastModel);
// Затем, переходим в предыдущий режим, т.е. указываем предыдущие модель и хранитель представлению
qtView->setModel(qiModel);
qtView->setSelectionModel(qisModel);
//Воаля, ничего не происходит, хотя по логике должны были отобразиться раскрытые и выделенные элементы предыдущего режима (сейсии можно сказать)
Прошу помощи, друзья!