LINUX.ORG.RU

QTreeWidget из таблицы

 , ,


0

1

Помогите, пожалуйста, придумать не очень кривой алгоритм ) Надо из таблицы получить дерево (QTreeWidget).

Таблица примерно такая:

id   num   name   child_id
1    1     Петя       3
2    1     Вася 
3    1     Федя 
3    2     НеФедя     4
3    3     ЕщеНеФедя 
4    1     Гаврюша

А дерево надо такое:

Петя
___Федя
___НеФедя
______Гаврюша
___ЕщеНеФедя
Вася

Помочь можно только тому, кто сам что-то предлагает. Иначе это называется «сделайте за меня».

CrossFire ★★★★★
()

Замени child_id на parent_id и алгоритм нарисуется сам собой. У тебя структура кривая изначально, вот и с алгоритмом проблема.

hippi90 ★★★★★
()
Ответ на: комментарий от CrossFire

Берем первую строку модели (QSqlQueryModel), в которой таблица.

С помощью QTreeWidget::insertTopLevelItems добавляем в дерево Петю.

Раз у него есть child_id, все имена с id = 3 запихиваем в Васю с помощью QTreeWidgetItem::addChild. Если У кого-то (НеФедя) есть child_id, то в него то запихиваем еще имена.

Потом берем Васю.

И тут доходим до Феди. Он уже добавлен, его не надо больше никуда добавлять.

Ну не удалять же из модели тех, кто уже добавлен в дерево... Если использовать QSqlQuery, ситуация та же.

TatianaSh
() автор топика

Кривая структура таблицы

anonymous
()
Ответ на: комментарий от TatianaSh

Ну не удалять же из модели тех, кто уже добавлен в дерево...

а помечать по айдишкам, что чувак добавлен?

f1u77y ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.