LINUX.ORG.RU

QSqlQueryModel -> QTreeView


0

2

Привет. Имею плоскую модель: id, name, parent_id. Как наименее гемморойно отобразить ее в друвовидной форме в QTreeView? В гугле находил варианты реализации своих моделей, но мне эта затея не очень нравится. Еще есть упоминания использования прокси-модели для преобразования плоских индексов в древовидные, но примеров кода я не нашел. Если кто уже работал с этим, поделитесь кодом или просто расскажите, как сделать такую прокси.

★★★★★

Ответ на: комментарий от shty

>тем более что вот тут рабочий вроде пример есть

Там на основе собственной модели, я не хочу дублировать одни и те же данные в разных моделях.

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

>Можешь поизучать как сделано tree -> list в KDE.

Спасибо большое. Постараюсь разобраться.

staseg ★★★★★
() автор топика

Недавно писал сам подобную вещь.
Самый простой путь - создать свою прокси модель.
Пишется за несколько часов. Если база большая - не стоит забывать про кеширование результатов и т.п., иначе производительность будет приятно удивлять.

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

>Самый простой путь - создать свою прокси модель.

Я и хочу. Но документация по проксям какая-то аховая, а методом тыка пока что получается что-то не то. Поделись пожалуйста историей успеха или мануалом.

staseg ★★★★★
() автор топика

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

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

Я читал вот здесь: http://doc.qt.nokia.com/4.7/itemviews-simpletreemodel.html

Но заменил internalPointer числом, точно уже не помню, как это называется. Это была ссылка на индекс в основной таблице.

Сегодня вечером дома код гляну, попробую отписаться подробнее.

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

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

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