Название: QTreeView - сложные элементы и отдельный редактор [РЕШЕНО] Отправлено: Torvald от Ноябрь 04, 2020, 18:00 Почитал про QTreeView, почти во всех примерах используются простенькие итемы на одно текстовое поле с соответствующим редактором в делегате. А вот как реализовать несколько сложных делегатов с постоянным отображением подвиджетов и отдельным редактором для них - не понятно. Объясню подробнее, на примере слоёв в фотошопе:
Слои - https://ibb.co/LxKhLdZ Редактор (открывается по дабблклику) - https://ibb.co/Vjs6Grf То есть в понятиях Qt нужно сделать как минимум два делегата - итем, отображающий сам слой (с именем, икнокой блокировки, маской и тд) и итем, отображающий группу слоёв (иконка с папкой, стрелочка, имя и тд). Как это сделать? Как запихать в один QTreeView два делегата? Или это как-то делается в одном делегате? Ну, например, создается нужный виджет в зависимости от роли? Видел стандартный пример со звёздами, но там отрисовка была в переопределенном методе paint, но не рисовать же все виджеты вручную? Можно ли как-то установить готовый класс виджета для отображения? И отдельное окно для редактирования? То есть в идеале хотелось бы чтоб итем отображал всё вышеперечисленное, а по двойному клику на надписи - редактировалась сама надпись (прямо на итеме), по двойному клику в другом месте - открывался полноценный редактор слоя. Название: Re: QTreeView - сложные элементы и отдельный редактор Отправлено: Racheengel от Ноябрь 05, 2020, 00:10 Мне кажется, что там каждый айтем - это не делегат, а отдельный виджет с описанным функционалом.
Я бы именно так и делал. Название: Re: QTreeView - сложные элементы и отдельный редактор Отправлено: Torvald от Ноябрь 07, 2020, 19:36 ну вот да, отдельный виджет. А как его использовать в качестве элемента?
Название: Re: QTreeView - сложные элементы и отдельный редактор Отправлено: Igors от Ноябрь 08, 2020, 12:55 ну вот да, отдельный виджет. А как его использовать в качестве элемента? См QTreeWidget::setItemWidgetПравда подразумевается что слоев будет "не так уж много" (на 1000 будет тормозить) Название: Re: QTreeView - сложные элементы и отдельный редактор Отправлено: Torvald от Ноябрь 08, 2020, 16:18 На сколько я знаю QTreeWidget не подразумевает изменение виджетов в итемах. А в моем примере виджет изменяется - меняются миниатюра, имя, значки, цвет и тд.
Название: Re: QTreeView - сложные элементы и отдельный редактор Отправлено: Igors от Ноябрь 08, 2020, 17:09 На сколько я знаю QTreeWidget не подразумевает изменение виджетов в итемах. А в моем примере виджет изменяется - меняются миниатюра, имя, значки, цвет и тд. Вставленный виджет - самый обычный, редактировать никто не запрещает. Правда потом надо найти строку/столбец, но это мелочи (ну хотя бы QHash)Название: Re: QTreeView - сложные элементы и отдельный редактор Отправлено: Torvald от Ноябрь 08, 2020, 17:18 Понял, спасибо, тогда это то что нужно
|