Russian Qt Forum

Qt => Общие вопросы => Тема начата: footballer от Апрель 27, 2007, 12:15



Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: footballer от Апрель 27, 2007, 12:15
Хочу в Designer-е в чтобы в Property Editor-е (ctrl-I)
я имел возможность  редактировать некий выпадающий список.
(точнее делать выбор из выпадающего списка)
(Точно такой список как "family" у property "Font")
В связи с эти у меня два вопроса:
В Assistant сказано

Qt's Property System
.....
There are two exceptions to the above: The type of a property can also
be either QList<QVariant> or QMap<QString, QVariant>. In these cases
the type must be specified as QList or as QMap, without any template
parameters.
.....

Однако судя по сорцам дизайнера они такие property не редактируют
Тогда к чему это?

Как это писать ?
  Q_PROPERTY(QList  arr ...   ) // Компиллер ругается
  Q_PROPERTY(QList<QVariant>  arr ...   ) //  Проперть не появляется в
редакторе

По сорцам дизайнера я вижу что используется
ListProperty

Код:

FontProperty::FontProperty(const QFont &value, const QString &name)
    : AbstractPropertyGroup(name)
{
    .....
    IProperty *i = 0;
    i = new ListProperty(fonts, index, QLatin1String("Family"));
    ......


Но как самому завести  подобную Property,
отображаемую в Property Editor я так и не понял пока.


А вааще кому-нить удалось в едиторе с помощью
плагинов закастомизить редактор в Property Editor ?

Мне не удалось найти ни одного примера в инете,
где бы фигурировала custom property не из списка
который поддерживает Дизайнер?

А это  возможно или все поддерживаемые типы предопределены ?
Если сие возможно , киньте пример PLS.


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: Mikhail от Апрель 28, 2007, 17:00
Создавай обычный плагин для дизайнера.
Создай одно или несколько свойств.
И все эти свойства сможешь редактировать в  Property Editor, в тот момент когда активным на форме будет именно твой плагин.


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: footballer от Май 02, 2007, 06:45
Цитата: "Mikhail"
Создавай обычный плагин для дизайнера.
Создай одно или несколько свойств.
И все эти свойства сможешь редактировать в  Property Editor, в тот момент когда активным на форме будет именно твой плагин.
Так я так и делаю.
Для обычных типов нет проблем - все получается.
Речь о нестандартных типах.
Например хочу проперть с выпадающим списком.
Тоесть Property  QString
Но вместо стандартного редактора, выпадающий список


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: Mikhail от Май 02, 2007, 08:05
Цитировать

Речь о нестандартных типах.
Например хочу проперть с выпадающим списком.
Тоесть Property QString
Но вместо стандартного редактора, выпадающий список


Определись, что же ты хочешь. Что это за нестандартные типы?
Свойство с выпадающим списком это свойство в котором ты можешь выбрать одно значение из списка. Это не строковое свойство, а свойство перечисления (Enum).


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: footballer от Май 03, 2007, 09:31
Цитата: "Mikhail"
Цитировать

Речь о нестандартных типах.
Например хочу проперть с выпадающим списком.
Тоесть Property QString
Но вместо стандартного редактора, выпадающий список


Определись, что же ты хочешь. Что это за нестандартные типы?
Свойство с выпадающим списком это свойство в котором ты можешь выбрать одно значение из списка. Это не строковое свойство, а свойство перечисления (Enum).
А если это имя файла,например ?
А я хочу чтобы мне показался список доступных файлов?
Enum - это константы.


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: Mikhail от Май 03, 2007, 11:51
Определись в своих желаниях.
Property - свойство класса.
А ты хочешь в свойствах класса отражать сторонние веши - список доступных файлов?
Это у тебя не прокатит.
Для этого используют что-то типа QFileDialog.


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: footballer от Май 04, 2007, 12:58
Цитата: "Mikhail"
Определись в своих желаниях.
Property - свойство класса.
А ты хочешь в свойствах класса отражать сторонние веши - список доступных файлов?
Это у тебя не прокатит.
Для этого используют что-то типа QFileDialog.
Немного не так.
Я хочу в дизайнере редактировать свойство класса
но нестандартным способом.
Во многих дизайнерах (Delphi например)
это делается на ура. Не вижу никаких противоречий.

  Ты наверное сделаешь для себя открытие
когда попробуешь поменять family у QFont
в дизайнере и увидишь выпадающий список.
А это QString между прочим


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: Muller от Май 07, 2007, 14:44
2 footballer
Тоже озадачивался этим вопросом. Сделал свой property, но пришлось править код Qt, по другому не смог.


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: Mikhail от Май 07, 2007, 19:33
Цитировать

Ты наверное сделаешь для себя открытие
когда попробуешь поменять family у QFont
в дизайнере и увидишь выпадающий список.
А это QString между прочим


to footballer
Для меня это не новость, как не новость и то, что QFont стандартное свойство.
Можешь использовать в любом плагине.

Цитировать

Тоже озадачивался этим вопросом. Сделал свой property, но пришлось править код Qt, по другому не смог.


to Muller
А вот "править" Qt - это не лучший выход. Это бессилие от непонимания.


Название: [QT 4.1.0] Редактирование своей Property ?
Отправлено: Muller от Май 08, 2007, 08:24
Цитата: "Mikhail"

А вот "править" Qt - это не лучший выход. Это бессилие от непонимания.

Хорошо, сформулирую иначе: я написал свои библиотеки, используя код Qt :) . При этом исходники в QTDIR остались нетронутыми. И теперь вместо libQtDesigner и libQtDesignerComponents подключаю к проекту их. Судя по коду, другого выхода нет, и плагинами это не лечится.