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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать заголовки различными на каждом уровне в модели ?  (Прочитано 5467 раз)
aljeshishe
Гость
« : Декабрь 03, 2009, 19:29 »

Есть древовидная модель: список пользователей, каждый пользователь содержит список папок, каждая папка содержит список сообщений. Естественно у каждого уровня данных различный набор полей:
у пользователей и папок - 2, у сообщений ~10, не совпадающих по смыслу. Например количество содержащихся элементов есть у пользователя и у папки но нет у сообщения.
Модель отображается в двух QTreeView, по типу The Bat (слева пользователи/папки, справа сообщения)
Столкнулся с тем что QAbstractItemModel::headerData должен возвращать одинаковый заголовок независимо от уровня в модели. Подскажите как сделать так, что бы в деревьях правильно отображались заголовки: в левом  - имя, количество, в правом - тема, дата, отправитель, получатель и т.д.

« Последнее редактирование: Декабрь 03, 2009, 20:12 от aljeshishe » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Декабрь 03, 2009, 19:38 »

снимок бы этого Bat'а, а то я не понял как выглядеть должно
Записан

Юра.
aljeshishe
Гость
« Ответ #2 : Декабрь 03, 2009, 19:46 »

The bat
Записан
spectre71
Гость
« Ответ #3 : Декабрь 03, 2009, 20:01 »

Есть древовидная модель: список пользователей, каждый пользователь содержит список папок, каждая папка содержит список сообщений. Естественно у каждого уровня данных различный набор полей:
у пользователей и папок - 2, у сообщений ~10, не совпадающих по смыслу. Например количество содержащихся элементов есть у пользователя и у папки но нет у сообщения.
Модель отображается в двух QTreeView, по типу The Bat (слева пользователи/папки, справа сообщения)
Столкнулся с тем что QAbstractItemModel::headerData должен возвращать одинаковый заголовок независимо от уровня в модели. Подскажите как сделать так, что бы в деревьях правильно отображались заголовки: в левом  - имя, количество, в правом - тема, дата, отправитель, получатель и т.д.

Еще вопросик назрел, по описанной модели, точнее по представлению, поэтому отдельную тему решил не создавать. В левом дереве должны отображаться пользователи/папки, но не должны отображаться сообщения. Как это реализовать. Думал в сторону QSortFilterProxyModel и его  filterAcceptsRow. Еще была идея наследования от QTreeView, с последующей заменой виртуальных функций (правда не разобрался каких конкретно). В результате пока остановился на более простом  expandToDepth (0) и установке setItemsExpandable ( false) (правда в этом случае у папок остаются плюсики сбоку). Посоветуйте что лучше.

Не обязательно для обоих View должна быть одна модель!
Источник данных у тебя один, но моделей может быть и больше.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Декабрь 03, 2009, 20:10 »

>>Еще вопросик ... точнее по представлению, поэтому отдельную тему решил не создавать.
А лучше создать, т.к. ищущему ответ на свой вопрос неудобно его выковыривать из темы-каши.
Записан

Юра.
spectre71
Гость
« Ответ #5 : Декабрь 03, 2009, 20:13 »

>>Еще вопросик ... точнее по представлению, поэтому отдельную тему решил не создавать.
А лучше создать, т.к. ищущему ответ на свой вопрос неудобно его выковыривать из темы-каши.

Угу. Улыбающийся
Но в данном случае 2 модели решают обе проблемы.
Записан
aljeshishe
Гость
« Ответ #6 : Декабрь 03, 2009, 20:19 »

А лучше создать, т.к. ищущему ответ на свой вопрос неудобно его выковыривать из темы-каши.
Отредактировал.

Я считал что MVC нужна в том числе и для того что бы одну модель модель можно было различным образом отображать в разных представлениях. Что то мне подсказывает, что если разделить модели получится не очень хорошо, хотя хз надо продумаь этот вопрос. Неужели нет другого способа отобразить различные заголовки?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Декабрь 03, 2009, 20:25 »

>>Но в данном случае 2 модели решают обе проблемы.
В общем да, судя по картинке, можно, две модели-посредники сделать
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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