Название: [Решено] View, похожий на список виджетов в Qt Designer Отправлено: NOX86 от Февраль 14, 2010, 19:01 -Задача:
Собственно сабж. Т.е. требуется разбить элементы ListView по группам с возможностью сворачивания\разворачивания групп. -Проблема: Не хватает опыта разобраться с сырцами Qt Designer (много там понаворочено). -Хотелось бы: Увидеть простенькое объяснение или ткнуть в похожие примеры. Спасибо Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: break от Февраль 14, 2010, 21:12 Если требуется именно для ListView то задачка то не особо простая и вообще не совсем понятная - набросай крин што-ли. А вот если подойдет treeView то тогда все уже лучше - есть масса сторонних компонент для Qt - всякие property browser-ы, property-editor-ы, object-inspector-ы. В самой Qt есть QtTreePropertyBrowser в Qt Solutions
http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtpropertybrowser/ он кстати может представлять элементы деревом, группами и выпадающими панельками по нажатию кнопки... И кстати в дизайнере вполне возможно что TreeView замаскированный слегка - даже плюсики видны... Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: lit-uriy от Февраль 14, 2010, 21:29 я думаю, что список виджетов можно реализовать примерно так:
Для элемента обозначающего заголовок группы создать делегат, с плюсиком/минусиком. Предусмотреть атрибут "скрыт/показан" для группы элементов. В зависимости от состояния этого элемента-заголовка изменять состояние этого атрибута Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: BRE от Февраль 14, 2010, 21:36 ... и получиться дерево. :)
IMHO, проще это сделать с QTreeView + модель + делегат. Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: NOX86 от Февраль 14, 2010, 21:41 Спасибо за ответы
break, не совсем то что надо (но инфа весьма и весьма полезная) lit-uriy, попробую. В атаче картинка нужного элемента который видимо реализован в qt\tools\designer\src\components\widgetbox\ На сколько я понял реализовано как список деревьев (поправте если ошибаюсь) но там довольно много всяких фишек наворочено. BRE, совершенно верно, но есть ли онтвет на след. вопрос: "TreeView подошёл бы, но как скрыть (визуально) корневой элемент?" Есть ли ещё предложения? Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: BRE от Февраль 14, 2010, 21:43 void QTreeView::setRootIsDecorated ( bool show )
Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: lit-uriy от Февраль 14, 2010, 22:48 >>... и получиться дерево.
ну почти, не будет отступов подветвей, как у TreeView, и не будет пунктирчиков (обозначений веток) Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: lit-uriy от Февраль 14, 2010, 23:06 Я нашёл исходник этого виджета: %QTDIR%\tools\designer\src\components\widgetbox\widgetboxtreewidget.h
Класс WidgetBoxTreeWidget, он является наследником QTreeWidget Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: break от Февраль 15, 2010, 00:41 Цитировать ну почти, не будет отступов подветвей, как у TreeView, и не будет пунктирчиков (обозначений веток) А отступы нельзя стайл-шитами победить?Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: NOX86 от Февраль 15, 2010, 04:33 break, а не подскажете ли как это сделать?
В принципе отступы не так и мешают, но можно и увеличить юзабилити. И ещё, хотелось бы корневые (те около которых плюсик есть) ноды выделить цветом фона. Всем большое спасибо! Основной вопрос решён использованием Дерева без общего нода. Название: Re: View, похожий на список виджетов в Qt Designer Отправлено: break от Февраль 15, 2010, 04:50 Можно так:
1) Через style sheets - вид стрелочек( а также плюсики/минусики развернутости ) меняем на свои картинки, ставим пустые картнки чтобы скрыть стрелочки совсем В ассистенты примеры в "Qt Style Sheets Examples-->Customizing QTreeView" 2) Потом ставим свойство indentation у TreeView в значение от 0 до 5 на выбор Должно получиться... Название: Re: [Решено] View, похожий на список виджетов в Qt Designer Отправлено: NOX86 от Февраль 15, 2010, 05:31 Добился нужного мне результата. Большое спасибо.
Название: Re: [Решено] View, похожий на список виджетов в Qt Designer Отправлено: Igors от Февраль 15, 2010, 05:42 У меня такое было, вот минимальный проект. Мой файл только TestBox.cpp - остальное передрал из исходников дизайнера.
Название: Re: [Решено] View, похожий на список виджетов в Qt Designer Отправлено: NOX86 от Февраль 15, 2010, 15:39 Без коментариев. ПРЕВОСХОДНО!
Название: Re: [Решено] View, похожий на список виджетов в Qt Designer Отправлено: GreatSnake от Март 31, 2010, 10:05 Хоть и решено, но может кому пригодится.
Есть библиотека Qxt (http://doc.libqxt.org/0.5.0/classes.html), в которой такой виджет (http://doc.libqxt.org/0.5.0/qxttreewidget.html#details) уже реализован. Помимо него есть и другие. |