Название: Сохранение состояния элементов... Отправлено: daenux от Январь 15, 2011, 17:38 Приветствую, дорогих форумчан!
Есть одна функция, каторую я незнаю как осуществить так как это принято в мире Qt, суть функции состоит в следующем: У меня есть представление (для иерархической цепи, объект класса QTreeView) и несколько моделей (объекты наследника класса QAbstractItemModel), программа многорежимная - так вот, как только сменяеться режим (т.е. представление меняет модель), состояния раскрых и выделенных элементов теряються... Как сохранять состояние представления элементов модели, перед тем как сменить режим, и затем при переходе в предыдущий режим работы программы - сново загрузить состояния элементов? Мне советовали поработать с QItemSelectionModel, я понял для чего он предназначен, но пользоваться им не получаеться... К примеру: Код: QItemModel *qiModel = new QItemModel(this); // Создаем объект, класса наследника QAbstractItemModel Прошу помощи, друзья! :) Название: Re: Сохранение состояния элементов... Отправлено: twp от Январь 17, 2011, 14:26 дело в том что модель не хранит данные об раскрытых элементов. Эту информацию нужно сохранять вручную, например добавив специальную роль (enum Qt::ItemDataRole) в модель данных и сохранять в нее состояние, а при загрузке модели восстанавливать состояние отображения
Название: Re: Сохранение состояния элементов... Отправлено: daenux от Январь 17, 2011, 21:21 Спасибо, я сделал следующем образом:
Прицепился к сигналам раскрытия и сворачивания элементов представления и запоминал ихние индексы в векторном контейнере... Это так же правильно, или лучше сделать так как вы сказали? Название: Re: Сохранение состояния элементов... Отправлено: twp от Январь 18, 2011, 12:01 ну можно и так, но как по мне, то удобнее это хранить прямо в модели, определив для этого свою роль
|