Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Что лучше использовать QTreeView или QTreeWidget

Автор: Delphist 4.8.2008, 9:25

Недавно начал изучать QT (а вообще профильная моя среда Delphi и Java, но сейчас заинтересовался C++), поэтому мои вопросы по началу могут для кого показаться слишком простыми, но большая просьба помагать с ответами.
У меня есть класс MY_CLASS который умеет хранить список объектов, которые в свою очередь могут хранить список на другие объекты и т.д. Т.е получается
не что иное как дерево. Задача стоит отображать экземпляр моего (ну т.е. список вложенных объектов и их свойств) в графическом интерфейсе.
Возникло несколько вопросов:
1) что лучше использовать QTreeView или QTreeWidget
2) незнает ли кто где можно скачать или посмотреть в нете пример подобной задачи


З.Ы. Заранее спасибо!

Автор: ViGOur 4.8.2008, 10:31

Цитата(Delphist @ 4.8.2008, 10:25) *
2) незнает ли кто где можно скачать или посмотреть в нете пример подобной задачи

В качестве примера это пойдет?
http://www.crossplatform.ru/?q=node/382
http://www.crossplatform.ru/?q=node/383
http://www.crossplatform.ru/?q=node/384

Автор: Delphist 4.8.2008, 10:46

Цитата(Delphist @ 4.8.2008, 9:25) *
В качестве примера это пойдет?
Property browser
Property Browser (PropertySheet)
Property Model

Что-то я там не наблюдаю использвание QTreeView или QTreeWidget

Автор: ViGOur 4.8.2008, 11:01

Цитата(Delphist @ 4.8.2008, 10:25) *
Задача стоит отображать экземпляр моего (ну т.е. список вложенных объектов и их свойств) в графическом интерфейсе.
Цитата(Delphist @ 4.8.2008, 10:25) *
2) незнает ли кто где можно скачать или посмотреть в нете пример подобной задачи
Ты просил не пример работы с QTreeView или QTreeWidget... ;)

Примеры работы можно посмотреть в папке: %qtdir%\examples\
Например: %qtdir%\examples\itemviews\simpletreemodel

Автор: Litkevich Yuriy 4.8.2008, 11:36

Цитата(Delphist @ 4.8.2008, 13:25) *
1) что лучше использовать QTreeView или QTreeWidget

зависит от того откуда у тебя данные берутся и много ли их, если много то лучше составить модель и использовать ее совместно с представлением (Q*View).

Автор: Delphist 4.8.2008, 15:53

Цитата(Litkevich Yuriy @ 4.8.2008, 11:36) *
Цитата(Delphist @ 4.8.2008, 13:25) *
1) что лучше использовать QTreeView или QTreeWidget

зависит от того откуда у тебя данные берутся и много ли их, если много то лучше составить модель и использовать ее совместно с представлением (Q*View).

Данные берутся из моего объекта

Автор: Litkevich Yuriy 4.8.2008, 15:58

как много их, если дело ограничится 10-20 елементами то лучше виджет, если больше и их число непредсказуемо, как в БД , то лучше пара модель-представление

Автор: void* 4.8.2008, 18:09

QTreeWidget унаследован от QTreeView, и служит для более удобной работы с не очень большими деревьями, когда ты не хочешь создавать модель, делегаты и прочее

Автор: Litkevich Yuriy 4.8.2008, 18:35

Цитата(void* @ 4.8.2008, 22:09) *
служит для более удобной работы

по опыту програмирования в Delphi и по прочтению доков, могу сказать что виджет кривой, мягко говоря, работать с ним не удобно, и троли создали его дабы не шокировать програмеров работавших с Qt3.x до дельфийского удобства, как от Камчатки до Москвы.

но для мелких масивов данных он более подходящь, я, например, использовал виджет списка, вместо представления, когда надо было отобразить список всех таблиц БД, их мение 10, замарачиватся с моделью и представлением при таком кол-ве смысла нет. Однако для данных в БД я использовал концепцию модель/представление так как данных можеть быть слишком много и тогда городить работу с виджетом сложно.

В дельфях есть готовые компоненты для отображения таблиц БД это не что иное как пара модель представление, просто обозваны иначе.

Вывод: При работе с виджетами ты все равно не избежишь терминологии модель/представление и данные будешь помещать в модель встроенную в виджет.

Автор: Delphist 4.8.2008, 18:38

Цитата(Litkevich Yuriy @ 4.8.2008, 15:58) *
то лучше пара модель-представление

Это как?

Автор: Litkevich Yuriy 4.8.2008, 18:48

вопервых представление, например, QTreeView, в одиночку не используют, оно отображает данные из модели.
Кноцепция разделения данных от их представления/отображения тебе знакома? Если нет читай на русском http://crossplatform.ru/documentation/qtdoc4.3/model-view-programming.php
некоторым кажется слишком просто, и они потом задают много вопросов, некотрым кажется слишком сложно и они пугаются. На практике - по серединке.

от себя по модель-представление добавлю, ИНДЕКС - абстрактная координата данных располеженых в модели, а вовсе не мутная штука :)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)