Название: Q_PROPERTY + QList + Designer plugin Отправлено: ZeroTroll от Апрель 11, 2010, 12:41 Я написал библиотеку виджетов и сейчас улучшаю ее для возможности визуальной настройки в дизайнере.
В данный момент стоит задача предоставить возможность программисту задавать свойства через редактор свойств. С простыми типами свойств проблем нет: Код: int _currentIndex; А вот с QList у меня проблемы. К примеру такой код: Код: QList<int> _glyphOrder; Прошерстив просторы интернета перепробовал кучу вариантов, но результата так и не добился. Пробовал и QList<QVariant> и QValueList. Не выходит. Но то, что в дизайнере можно в качестве свойств представлять QList<int> уверен на 100%, ибо сам видел у какого-то виджета. Пробовал искать реализацию в исходниках Qt, но так и не нашел, ибо не помню что за виджет. Подскажите как быть в этой ситуации. Как заставить designer отображать в редакторе свойств QList и QMap. Неужели придется писать свое расширение для designer чтобы реализовать этот функционал? Спасибо. Название: Re: Q_PROPERTY + QList + Designer plugin Отправлено: ZeroTroll от Апрель 11, 2010, 12:59 Кстати, если вместо QList<int> написать QStringList - то все прекрасно срабатывает.
Название: Re: Q_PROPERTY + QList + Designer plugin Отправлено: break от Апрель 11, 2010, 13:23 Не помню стандартных виджетов с QList или QMap в инспекторе свойств - вроде как раз через расширения делаются...(щелкаем например по комбо боксу и уже из менб выбираем редактировать итемы)
И кстати однажды тоже искал решение проблемы создания сложных, разворачивающихся свойств (типа QFont и т.д.) - вроде его пока нет... http://www.prog.org.ru/topic_6612_0.html Если вам удасться на что нибудь наткнуться отпишитесь плиз! Название: Re: Q_PROPERTY + QList + Designer plugin Отправлено: SASA от Апрель 11, 2010, 20:49 Стандартный проперти эдитор поддерживает не много типов. Для других типов надо изменять его исходники. Там смысл такой, эдитор спрашивает у проперти тип. Если он знает, чё за тип он вставляет контрол для его редактирования. Если не знает, то ничего не делает.
Название: Re: Q_PROPERTY + QList + Designer plugin Отправлено: break от Апрель 11, 2010, 21:02 Да это все к сожалению! - в этом плане в Delphi легко решалась проблема - вставил подобъект в объект и он уже в инспекторе виден как полноценный подобъект, все свойства по плюсику разворачиваются и т.д.
Название: Re: Q_PROPERTY + QList + Designer plugin Отправлено: ZeroTroll от Апрель 12, 2010, 12:26 Значит надо писать расширения дизайнера для редактирования кастомного типа данных.
Это точно возможно, сам видел. Но прошерстив индерфейсы в модуле Qt Designer так ничего дельного и не нашел. Подскажите с чего начать для написания расширение дизайнера для редактора свойств произвольных типов. Название: Re: Q_PROPERTY + QList + Designer plugin Отправлено: ZeroTroll от Апрель 13, 2010, 11:40 Ну хорошо.
Я написал TaskMenuExtension, или как-то так. Там все устанавливаю и редактирую. Но вот проблема - чтобы сохранить состояние виджета надо выхвать метод setProperty, который принимает только QVariant. А состояние моего объекта описывается не QVariant. Есть ли возможность из TaskMenuExtension сохранить состояние объекта, запомнить вызываемые методы и т.п. Без использования Q_PROPERTY. Название: Re: Q_PROPERTY + QList + Designer plugin Отправлено: SASA от Апрель 13, 2010, 13:45 В QVariant можно записать всё что угодно. В асистанте написано как.
Название: Re: Q_PROPERTY + QList + Designer plugin Отправлено: ритт от Май 01, 2010, 19:42 ZeroTroll, будь добр, приложи потом исходники - сильно упростит задачу следующему, кто столкнётся с подобной проблемой
|