Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: QT Model-View  (Прочитано 5001 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« : 07-01-2010 13:42 » 

Потихоньку начинаю использовать виджеты из QT4, в связи с чем появился вопрос:

Вот эта предлагаемая архитектура Model-View на основе QAbstractItemModel, QAbstractItemView и их потомков - насколько она вообще применима в реальной жизни для организации работы с данными? По первому впечатлению, складывается ощущение, что интерфейс слишком сложный и неэффективный для того, чтобы это было удобно применять к своим моделям данных (особенно смущают индексы в том смысле, что при обращении к дочерним элементам каждый раз происходит вызов метода модели с индексом родителя в качестве аргумента).

Скажем, если у меня есть однородное дерево с глубиной 2-3 и текстовой информацией, которая не модифицируется (разве что, удалять узлы из дерева), то мне, похоже, проще пользоваться QTreeWidget (там это элементарно: добавил узел, узлу добавил сколько нужно дочерних). Теперь, допустим, я хочу делать что-то чуть более нетривиальное: добавить чек-боксы, запоминать, какие узлы свёрнуты, для восстановления вида дерева при следующем запуске - словом, придать дереву более управляемый вид (вплоть до редактирования содержимого: пусть у меня в узле есть путь до файла, и я хочу его перемещать, задав новый путь в edit-box-е, связанном с деревом, или как-то ещё).
Насколько использование модели упростит жизнь? То есть, решение об использовании модели априори сразу усложняет - но способно ли это привести к более простому и ясному дизайну? Или модели - это такой сферический конь в вакууме, и в реальности используются только готовые их реализации, типа QDirModel?
« Последнее редактирование: 07-01-2010 13:46 от Вад » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 07-01-2010 15:24 » 

Offtopic:

Сунулся посмотреть на Qt и с удивлением увидел, что его купила Nokia.

Они еще ничего freeware для винды не сделали?

Сам же ответил: есть LGPL.
Поставлю в угол.


А если создать свой класс с наследованием от QTreeWidgetItem и нужного класса, базирующегося на QWidget?
Я с Qt немного поработал еще в версии 2.3 (лет 6 назад) - вроде как архитектура осталась та же.
« Последнее редактирование: 07-01-2010 16:21 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #2 : 07-01-2010 20:27 » 

Вад, Я применял где то с годик назад. Сейчас точно как делается, честно говоря не помню. Надо лезть в свой код. При помоши моделей можно делать тонкую настройку отображения и работы с данными. В принципе, там исходят из настроек по умолчанию. К ним ты добавляеш свое видение.
Ром, при переходе с 3 версии на 4. Концепция поменялась. Так что, приходится много доробатывать ручками. Хотя в свое время Trolltech ввели в 4 версию классы. Для совместимости с 3 версией.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines