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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: иерархическая QAbstarctItemModel  (Прочитано 5442 раз)
izoomer
Гость
« : Ноябрь 16, 2006, 13:42 »

Qt-4.2

Можно ли создать иерархическую модель, например каталог - оглавление каталога, но связать с двумя представдениями, т.е. каталоги в одной QListView а оглавление выбранного каталога в другом QListView. Т.е. корневые узлы в одном виджете а дочерние выбранного в данный момент в другом и динамически менять? Покажите куда копать
спасибо
Записан
bigirbis
Гость
« Ответ #1 : Ноябрь 16, 2006, 18:36 »

Если по простому:
void QAbstractItemView::setRootIndex ( const QModelIndex & index )  [virtual slot]
Если есть основания или хочется экзотики:
создай детеныша от QAbstractProxyModel
Записан
izoomer
Гость
« Ответ #2 : Ноябрь 16, 2006, 18:50 »

и что делать с этим setRootItem ?
если ен трудно - намекните примером
Записан
bigirbis
Гость
« Ответ #3 : Ноябрь 16, 2006, 19:16 »

Что-то типа (откомпилить не пробовал) Улыбающийся :
Код:
SomeWidget::SomeWidget()
{
 treeView_ = new QTreeView( this );
 treeView_->setModel( someModel_ );
 treeView_->setRootIndex( ModelIndex() );
}

void SomeWidget::itemClicked( const QModelIndex & index )
{
 treeView_->setRootIndex( index );
}
Записан
izoomer
Гость
« Ответ #4 : Ноябрь 17, 2006, 10:31 »

ну это приблизительно по реакции на выбор корневого итема.
А вот как сделать что бы корневые были в одной таблице а дочерние в другой и все от одной модели?
Записан
bigirbis
Гость
« Ответ #5 : Ноябрь 17, 2006, 14:41 »

Судя по документации, для первого вьюера надо вызвать:
void setItemsExpandable ( bool enable )
void setRootIsDecorated ( bool show )

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


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