Название: Вложенные поля в дизайнере для кастомного виджета Отправлено: break от Декабрь 08, 2009, 19:19 Когда-то уже поднимал эту тему - ответа не нашел
Что хочется: Есть свой виджет - оформлен как плагин для дизайнера, его полями являются некоторые структуры тоже состоящие из полей! Наприме все вы видели как распахивается в инспекторе объектов дизайнера подполя для поля с типом QFont - прилагаю рисунок. Вопрос - как сделать в своем виджете такое - и получалось ли у кого нибудь? В свое время и бился бился но безрезультатно - а количество подполей тем временем у этого виджета увеличилось- и работать с ними становится все труднее - когда они не вложены друг в друга... Хотя бы на 1 уровень вложенности перенести их... Название: Re: Вложенные поля в дизайнере для кастомного виджета Отправлено: SABROG от Декабрь 08, 2009, 23:09 Обычный QTreeView. Или я прикола не понял.
Название: Re: Вложенные поля в дизайнере для кастомного виджета Отправлено: break от Декабрь 09, 2009, 00:34 Цитировать Обычный QTreeView. Или я прикола не понял. Не понял естественно - мне нужно чтобы в дизайнере в его View-е мой компонент так красиво разворачивался!В делфи при написании своих компонент - это легко работало - достаточно было в своей структуре также объявить подпроперти - здесь нет... Название: Re: Вложенные поля в дизайнере для кастомного виджета Отправлено: lit-uriy от Декабрь 09, 2009, 01:08 Можно посмотреть на плагины Qwt, там есть вложенные поля, хотя они больше стандартные, а не пользовательские.
См. рисунок. Это компонент QwtThermo Название: Re: Вложенные поля в дизайнере для кастомного виджета Отправлено: break от Декабрь 09, 2009, 01:42 QBrush и QColor и у меня работают - также QFont и т.д. --- мне как раз нужно свою структуру заставить так в качестве поля разворачиваться -странно что больше никому такое не требовалось, для визуальных компонент....
Може теще какая нибудь библиотека есть где все таки была своя (не Qt-ешная структура) так заполнена... --- о блин похоже в QwtPlot что то подобное сделано... буду смотреть и разбираться... Оказалось обычный опять же стандартный QString :( Название: Re: Вложенные поля в дизайнере для кастомного виджета Отправлено: lit-uriy от Декабрь 09, 2009, 03:27 break, а у тебя собственная структура (тип) зарегистрирована в системе типов?
Название: Re: Вложенные поля в дизайнере для кастомного виджета Отправлено: break от Декабрь 09, 2009, 03:40 пробовал регистрировать так - не помогате... не появляется вообще проперти в дизайнере
Код: #include <QMetaType> в самом классе объявлено так: Код: CMyTestStruct m_test; Поле test2 - которое стандартного типа int появляется и работает(аналогично работаю QFont, QString и т.д.) - поле test - которое типа CMyTestStruct не появляется в дизайнере вообще... - рисунок прилагаю Терзают смутные сомнения что прийдется использовать вот это: QDesignerPropertySheetExtension -- найти бы рабочий пример использования, чтобы время съэкономить и понять оно или не оно... Не понятно из документации оно может только манипулировать уже существующими пропертями в дизайнере - или может создать новое проперти??? что будет если в метод indexOf передать имя несуществующего проперти - наверняка вернет "-1" - а других ф-ций типа addProperty - в этом интерфейсе управления дизайнером нет - врят ли подойдет... Название: Re: Вложенные поля в дизайнере для кастомного виджета Отправлено: SABROG от Декабрь 09, 2009, 13:49 Вот тролль отвечает, что подобный функционал в план не входит: http://lists.trolltech.com/pipermail/qt-interest/2009-July/010659.html
Тут вообще речь о пользовательских типах в дизайнере, а уж о том, чтобы их еще как-то на подветки разбивать так это вы поторопились. Кстати 2 файлика интересных: tools\designer\src\lib\shared\qdesigner_propertycommand.cpp tools\designer\src\lib\uilib\properties.cpp Название: Re: Вложенные поля в дизайнере для кастомного виджета Отправлено: Dendy от Декабрь 09, 2009, 14:59 Код: struct Q_DECL_EXPORT CMyTestStruct Кстати, Q_DECL_EXPORT нельзя использовать в явном виде. Должен быть какой-то макрос, ссылающийся на него или на Q_DECL_IMPORT, в зависимости импортируете или экспортируете ли вы библиотеку. Но в данном случае это не критично, ибо заголовочник больше нигде как создании библиотеки не учавствует. |