Russian Qt Forum
Ноябрь 23, 2024, 01:54
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Model-View (MV)
>
[Решено] View, похожий на список виджетов в Qt Designer
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [Решено] View, похожий на список виджетов в Qt Designer (Прочитано 12263 раз)
NOX86
Гость
[Решено] View, похожий на список виджетов в Qt Designer
«
:
Февраль 14, 2010, 19:01 »
-Задача:
Собственно сабж.
Т.е. требуется разбить элементы ListView по группам с возможностью сворачивания\разворачивания групп.
-Проблема:
Не хватает опыта разобраться с сырцами Qt Designer (много там понаворочено).
-Хотелось бы:
Увидеть простенькое объяснение или ткнуть в похожие примеры.
Спасибо
«
Последнее редактирование: Февраль 15, 2010, 05:30 от NOX86
»
Записан
break
Гипер активный житель
Offline
Сообщений: 846
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #1 :
Февраль 14, 2010, 21:12 »
Если требуется именно для
List
View то задачка то не особо простая и вообще не совсем понятная - набросай крин што-ли. А вот если подойдет 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 замаскированный слегка - даже плюсики видны...
«
Последнее редактирование: Февраль 14, 2010, 21:14 от break
»
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #2 :
Февраль 14, 2010, 21:29 »
я думаю, что список виджетов можно реализовать примерно так:
Для элемента обозначающего заголовок группы создать делегат, с плюсиком/минусиком. Предусмотреть атрибут "скрыт/показан" для группы элементов. В зависимости от состояния этого элемента-заголовка изменять состояние этого атрибута
Записан
Юра.
BRE
Гость
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #3 :
Февраль 14, 2010, 21:36 »
... и получиться дерево.
IMHO, проще это сделать с QTreeView + модель + делегат.
Записан
NOX86
Гость
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #4 :
Февраль 14, 2010, 21:41 »
Спасибо за ответы
break, не совсем то что надо (но инфа весьма и весьма полезная)
lit-uriy, попробую.
В атаче картинка нужного элемента который видимо реализован в qt\tools\designer\src\components\widgetbox\
На сколько я понял реализовано как список деревьев (поправте если ошибаюсь) но там довольно много всяких фишек наворочено.
BRE, совершенно верно, но есть ли онтвет на след. вопрос:
"TreeView подошёл бы, но как скрыть (визуально) корневой элемент?"
Есть ли ещё предложения?
«
Последнее редактирование: Февраль 14, 2010, 21:46 от NOX86
»
Записан
BRE
Гость
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #5 :
Февраль 14, 2010, 21:43 »
void QTreeView::setRootIsDecorated ( bool show )
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #6 :
Февраль 14, 2010, 22:48 »
>>... и получиться дерево.
ну почти, не будет отступов подветвей, как у TreeView, и не будет пунктирчиков (обозначений веток)
Записан
Юра.
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #7 :
Февраль 14, 2010, 23:06 »
Я нашёл исходник этого виджета: %QTDIR%\tools\designer\src\components\widgetbox\widgetboxtreewidget.h
Класс WidgetBoxTreeWidget, он является наследником QTreeWidget
Записан
Юра.
break
Гипер активный житель
Offline
Сообщений: 846
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #8 :
Февраль 15, 2010, 00:41 »
Цитировать
ну почти, не будет отступов подветвей, как у TreeView, и не будет пунктирчиков (обозначений веток)
А отступы нельзя стайл-шитами победить?
Записан
NOX86
Гость
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #9 :
Февраль 15, 2010, 04:33 »
break, а не подскажете ли как это сделать?
В принципе отступы не так и мешают, но можно и увеличить юзабилити.
И ещё, хотелось бы корневые (те около которых плюсик есть) ноды выделить цветом фона.
Всем большое спасибо! Основной вопрос решён использованием Дерева без общего нода.
Записан
break
Гипер активный житель
Offline
Сообщений: 846
Re: View, похожий на список виджетов в Qt Designer
«
Ответ #10 :
Февраль 15, 2010, 04:50 »
Можно так:
1) Через style sheets - вид стрелочек( а также плюсики/минусики развернутости ) меняем на свои картинки, ставим пустые картнки чтобы скрыть стрелочки совсем
В ассистенты примеры в "Qt Style Sheets Examples-->Customizing QTreeView"
2) Потом ставим свойство indentation у TreeView в значение от 0 до 5 на выбор
Должно получиться...
Записан
NOX86
Гость
Re: [Решено] View, похожий на список виджетов в Qt Designer
«
Ответ #11 :
Февраль 15, 2010, 05:31 »
Добился нужного мне результата. Большое спасибо.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: [Решено] View, похожий на список виджетов в Qt Designer
«
Ответ #12 :
Февраль 15, 2010, 05:42 »
У меня такое было, вот минимальный проект. Мой файл только TestBox.cpp - остальное передрал из исходников дизайнера.
Записан
NOX86
Гость
Re: [Решено] View, похожий на список виджетов в Qt Designer
«
Ответ #13 :
Февраль 15, 2010, 15:39 »
Без коментариев. ПРЕВОСХОДНО!
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: [Решено] View, похожий на список виджетов в Qt Designer
«
Ответ #14 :
Март 31, 2010, 10:05 »
Хоть и решено, но может кому пригодится.
Есть библиотека
Qxt
, в которой такой
виджет
уже реализован. Помимо него есть и другие.
Записан
Qt 5.11/4.8.7 (X11/Win)
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...