Russian Qt Forum
Октябрь 02, 2024, 11:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeView, запомнить состояние  (Прочитано 4594 раз)
UVV
Гость
« : Ноябрь 03, 2009, 10:04 »

Хотелось бы запоминать состояние treeView, чтобы при отображении в следующий раз уровень раскрытия веток был такой же.
Какие для этого есть методы?
Записан
spectre71
Гость
« Ответ #1 : Ноябрь 03, 2009, 10:23 »

Хотелось бы запоминать состояние treeView, чтобы при отображении в следующий раз уровень раскрытия веток был такой же.
Какие для этого есть методы?


Когда в следующий раз?
Записан
UVV
Гость
« Ответ #2 : Ноябрь 03, 2009, 10:35 »

После удаления и повторного создания модели. У меня одно treeView используется для отображения двух моделей.
Хотя /me задумался... а стоит ли её вообще удалить, не проще ли держать её в памяти...
Записан
spectre71
Гость
« Ответ #3 : Ноябрь 03, 2009, 10:49 »

После удаления и повторного создания модели. У меня одно treeView используется для отображения двух моделей.
Хотя /me задумался... а стоит ли её вообще удалить, не проще ли держать её в памяти...

1) Обычно не стоит удалять, но все зависит от конкретной задачи. В твоем случае удалять не надо.
2) К сожалению тролли не подумали о возможности хранении "Expanded" на уровне модели. QSet<QPersistentModelIndex> expandedIndexes; - в привате у QTreeView(QTreeViewPrivate)
Поэтому прийдется самому сохранять список раскрытых веток(например на момент перед заменой модели, получаем через bool QTreeView::isExpanded ( const QModelIndex & index ) const) и восстанавливать через void QTreeView::setExpanded ( const QModelIndex & index, bool expanded ) после установки модели.
Записан
UVV
Гость
« Ответ #4 : Ноябрь 03, 2009, 10:56 »

Код:
bool QTreeView::isExpanded 
В принципе я так и собирался. Т.е. получается, что нужно пройтись по всем элементам, у который есть дети, так?
Записан
spectre71
Гость
« Ответ #5 : Ноябрь 03, 2009, 11:05 »

Код:
bool QTreeView::isExpanded 
В принципе я так и собирался. Т.е. получается, что нужно пройтись по всем элементам, у который есть дети, так?

Получается что так.
Либо попросить троллей сделать соответствующую фичу. Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 20.