Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: f0ker от Апрель 19, 2007, 11:25



Название: Qt 4.1.4 QTreeWidget и массив классов или как быть?
Отправлено: f0ker от Апрель 19, 2007, 11:25
Здравствуйте,

Мне нужно создать дерево QTreeWidget в котором будут в качестве элементов не текст, а всякие RadioButton, ComboBox, CheckBox. Как это вообще делается тут уже было и это понятно. Вопрос как мне все это создавать динамически и потом еще иметь доступ к каждому элемену чтобы узнать его состояние (т.е. че там выставлено).

Должно получится что то вроде (число строк может быть различным)

Код:
node
   |_
       subnode1     <CheckBox1>    <ComboBox1>
   |_
       subnode2     <CheckBox2>    <ComboBox2>



Сильно не пинайте, я в Qt новичек  :roll: .


Название: Re: Qt 4.1.4 QTreeWidget и массив классов или как быть?
Отправлено: vregess от Апрель 19, 2007, 20:40
Цитата: "f0ker"
Здравствуйте,

Мне нужно создать дерево QTreeWidget в котором будут в качестве элементов не текст, а всякие RadioButton, ComboBox, CheckBox. Как это вообще делается тут уже было и это понятно. Вопрос как мне все это создавать динамически и потом еще иметь доступ к каждому элемену чтобы узнать его состояние (т.е. че там выставлено).

Должно получится что то вроде (число строк может быть различным)

Код:
node
   |_
       subnode1     <CheckBox1>    <ComboBox1>
   |_
       subnode2     <CheckBox2>    <ComboBox2>



Сильно не пинайте, я в Qt новичек  :roll: .


Это можно реализовать при помощи делегатов (QItemDelegate, напр).
Опиши задачу подробнее.
Информацию о состоянии можно хранить в ролях, например.
Цитата: "f0ker"

Как это вообще делается тут уже было и это понятно.

Тогда вопросов возникать не должно  :)
----
Addon
Судя по рисунку, можно сделать три столбца:
в первом имя (при помощи модели)
во второи чек (при помощи модели - Qt::CheckStateRole)
в третьем - комбо (при помощи делегата)
Смотри в ассистенте про QAbstractItemModel.