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

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

Форум на CrossPlatform.RU _ Qt Модель/Представление _ QTreeView + QStandartItemModel

Автор: edwardoid 24.6.2011, 8:43

Как это использовать? Мне нужно обычнов дерево состоящее из айтемов типа [{name}{QWidget}]

parent QLabel
..|----child QComboBox
..|----child QSpinBox
..|----child QLineEdit
..|-----sub-parent QLabel
.........|----child QComboBox
.........|----child QSpinbox
....

Как сделать, или есть где-нибудь такое под LGPL/Apache?

Автор: Litkevich Yuriy 24.6.2011, 9:51

похоже тебе без создания наследника от представления (QTreeView) не обойтись. А это нигде в документации не описано - придётся постоянно подглядывать в исходник QTreeView.

Автор: edwardoid 24.6.2011, 9:51

Вроде так и сделал, я думал есть тропинка покороче :(

Автор: Litkevich Yuriy 24.6.2011, 9:54

Дело в том, если я правильно понял, ветвь дерева всегда содержит строго определённую последовательность виджетов, и каждая другая ветвь, содержит такую же последовательность. Делегатом такое не разрулить, т.к. в QTreeView делегат - строка, а не ячейка или колонка.

В наследнике нужно будет знать и поддерживать иерархию виджетов.


П.С.
Если данных мало, то тут проще будет реализовать через QTreeWidget.

Автор: edwardoid 24.6.2011, 10:01

На самом деле ветвь дерева хотелсоь бы сделать гибкой. там на самом деле уровень скореев сего будет такой

[root]
..|--[group]
..|....|--- [childs]
..|....L--- [subgrups]
..|.............|---[child] // таких child-ов может быть несколько
..|.............|---[child]
..|.............L---[child]
..|
..|--[group]
..|....|--- [childs] // таких тоже
..|....L--- [subgrups]
..|.............|---[child]
..|.............|---[child]
..|.............L---[child]
..|
....

Автор: Анна 14.7.2011, 16:04

Цитата(Litkevich Yuriy @ 24.6.2011, 10:54) *
... в QTreeView делегат - строка, а не ячейка или колонка...

Litkevich Yuriy, можно поподробнее об этом месте. Почему строка?

Не знаю, поможет ли такое соображение. Я в QStandardItem хранила указатель на виджет. В делегате можно этот виджет подсовывать в качестве редактора.


Автор: Litkevich Yuriy 14.7.2011, 18:53

Цитата(Анна @ 14.7.2011, 19:04) *
Litkevich Yuriy, можно поподробнее об этом месте. Почему строка?
Да, прошу прощения, делегата не трогать. Просто привык, что обычно спрашивают про QTreeWidget, а там QTreeWidgetItem - представляет строку, а не ячейку.

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