Кто-Нибудь реализовывал визуальное представление дерева в QML 2.0? Есть данные в

виде нескольких уровней вложенных списков.
На данный момент реализовал модель данных от QAbstractItemModel.
С помощью TreeView из Quick 1 получилось отобразить дерево.
TreeView не очень подходит и хотелось бы использовать вторые контролы.
Примеры в интернетах что нашел для меня немного не понятны.
Допустим я взял ListView, указал ему модель, он отобразил верхний список, а дальше как?
Как из QML получить второй уровень вложенности, третий и т.д.?

6 ответов

7 просмотров

Только руками все делать, нет готового решения. Модель данных представляйте как хотите

Andrey-Larionov Автор вопроса
Zim
Только руками все делать, нет готового решения. Мо...

Ок, нубский вопрос, а как правильно c QModelIndex работать из QML? Когда я создаю индексы в row пишу соответственно позицию в текущем списке на данном уровне, column у меня всегда 1 равен, и есть указатель на parent. Item'ы я унаследовал от QObject. Т.е. допустим я хочу сказать какому-нибудь Repeater'у, возьми данные (список элементов) чайлда 10 элемента из первого уровня. Как мне это сделать?

Andrey Larionov
Ок, нубский вопрос, а как правильно c QModelIndex ...

Так не получится, Repeater, ListView и прочие элементы, нарисуют полностью модель как она есть, нельзя указать кусок. Для таких случаев обычно делают QAbstractProxyModel модель, которая ничего не хранит, а просто проксирует индексы в source model

Andrey-Larionov Автор вопроса
Zim
Так не получится, Repeater, ListView и прочие элем...

Ага, примерно понял, прокси-модель будет формировать списочные индексы (плоские), которые мне на данный момент нужны и предоставлять отдельным вьюхам. Правильно я понимаю?

Andrey Larionov
Ага, примерно понял, прокси-модель будет формирова...

да, все верно. Оригинальная модель хранит все данные, а дальше можно создать сколько угодно прокси моделей к ней, которые проксируют по какому то своему критерию в плоское представление для ListView

Andrey-Larionov Автор вопроса
Zim
да, все верно. Оригинальная модель хранит все данн...

Спасибо за наводку, так и поступлю 👍

Похожие вопросы

Обсуждают сегодня

Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
Ребят, было ли у вас так, что переменные в WebApp —tg-viewport-height, —tg-viewport-stable-height после метода expand не обновляются, а остаются в размерах, как было до expand...
Black
3
Ребят, а вот такой вопрос: если я владелец бота анонимного чата, в котором, например, имеются подписки, используя какую-нибудь ЮКассу (или тому подобное, в общем с налогами, в...
Eugene Неелов
8
Кто-нибудь пробовал? Заявлена поддержка ИИ
Александр Калин
2
Гнева и тупости пост. Как блять можно работать с маркетологами? Их в детстве всех родители случайно цепляли об дверные откосы? Поступила таска, на сайте "лишний счетчик Google...
Igor
4
Вообще сейчас эти все провайдеры облаков оборзели. Если тебе нужно 4 ядра и 4 гб., хер где такую конфигурацию найдешь. Суют тебе сразу либо 8гб. либоа сразу 16 гб., они мне на...
Igor
4
Короче получается только кнопки не поменять А кнопки вроде тоже слетают при редактировании не?
inc.
10
Карта сайта