Russian Qt Forum

Qt => Общие вопросы => Тема начата: DiamondRain от Ноябрь 02, 2010, 01:46



Название: QTreeWidget - обход дерева.
Отправлено: DiamondRain от Ноябрь 02, 2010, 01:46
У меня есть список объектов, которые будут являться составляющими дерева. В свойствах объекта его имя и указатель на элемент, который по структуре стоит на уровень его выше. Нужно в QTreeWidget построить дерево этих объектов.
Подскажите, как это лучше сделать? Рекурсией? Или воспользоваться стандартными методами класса?


Название: Re: QTreeWidget - обход дерева.
Отправлено: alexman от Ноябрь 02, 2010, 08:36
Из данной структуры делаем дерево. Далее делаем обход дерева и заполняем экземпляр QTreeWidget!


Название: Re: QTreeWidget - обход дерева.
Отправлено: navrocky от Ноябрь 02, 2010, 11:00
В свойствах объекта его имя и указатель на элемент, который по структуре стоит на уровень его выше.
Как такое дерево обойти, если нет списка дочерних элементов  ???

А так да, обычно это рекурсия.

Как вариант - разобраться с Model/View архитектурой и сделать на QTreeView.

Цитировать
Или воспользоваться стандартными методами класса?
Не слышал о таких %)

Если все-таки делать на QTreeWidget то для удобства указатель на твой объект можно запихнуть в QTreeWidgetItem через QTreeWidgetItem::setData...


Название: Re: QTreeWidget - обход дерева.
Отправлено: BlackTass от Ноябрь 02, 2010, 23:10
Зато есть указатель на парента, этого вполне достаточно для построения дерева.


Название: Re: QTreeWidget - обход дерева.
Отправлено: navrocky от Ноябрь 03, 2010, 15:46
Зато есть указатель на парента, этого вполне достаточно для построения дерева.

Достаточно конечно, но как такое дерево обойти?


Название: Re: QTreeWidget - обход дерева.
Отправлено: BlackTass от Ноябрь 03, 2010, 16:11
Ну сначала его нужно построить, а потом соответственно обойти. Я просто не вижу тут какой то особой проблемы :)


Название: Re: QTreeWidget - обход дерева.
Отправлено: navrocky от Ноябрь 04, 2010, 10:31
Ох лол, проглядел фразу  :) :
Цитировать
У меня есть список объектов, которые будут являться составляющими дерева.


Название: Re: QTreeWidget - обход дерева.
Отправлено: DiamondRain от Ноябрь 10, 2010, 17:55
В QList будет лежать модель, а именно список объектов (элемент дерева). При построении дерева каждый элемент оного будет являться view моего объекта :) как еще объяснить..


Название: Re: QTreeWidget - обход дерева.
Отправлено: BlackTass от Ноябрь 10, 2010, 18:16
Ничо не понял, попробуй еще раз


Название: Re: QTreeWidget - обход дерева.
Отправлено: DiamondRain от Ноябрь 10, 2010, 18:30
В идеале хочу сделать следующем образом: с помощью класса QAbstractItemModel задам модель для моего дерева при помощи коллекции объектов (класс - Элемент дерева). Далее к отображалке QTreeWidget привязать созданную модель и вывести её в виде дерева каталогов.


Название: Re: QTreeWidget - обход дерева.
Отправлено: BlackTass от Ноябрь 10, 2010, 18:39
Ну к QTreeView только. Теперь интересно будет узнать в чем проблема :)