Russian Qt Forum
Ноябрь 24, 2024, 14:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [QT 4.1.0] Редактирование своей Property ?  (Прочитано 6433 раз)
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.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #1 : Апрель 28, 2007, 17:00 »

Создавай обычный плагин для дизайнера.
Создай одно или несколько свойств.
И все эти свойства сможешь редактировать в  Property Editor, в тот момент когда активным на форме будет именно твой плагин.
Записан
footballer
Гость
« Ответ #2 : Май 02, 2007, 06:45 »

Цитата: "Mikhail"
Создавай обычный плагин для дизайнера.
Создай одно или несколько свойств.
И все эти свойства сможешь редактировать в  Property Editor, в тот момент когда активным на форме будет именно твой плагин.
Так я так и делаю.
Для обычных типов нет проблем - все получается.
Речь о нестандартных типах.
Например хочу проперть с выпадающим списком.
Тоесть Property  QString
Но вместо стандартного редактора, выпадающий список
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #3 : Май 02, 2007, 08:05 »

Цитировать

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


Определись, что же ты хочешь. Что это за нестандартные типы?
Свойство с выпадающим списком это свойство в котором ты можешь выбрать одно значение из списка. Это не строковое свойство, а свойство перечисления (Enum).
Записан
footballer
Гость
« Ответ #4 : Май 03, 2007, 09:31 »

Цитата: "Mikhail"
Цитировать

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


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

Сообщений: 587


Просмотр профиля
« Ответ #5 : Май 03, 2007, 11:51 »

Определись в своих желаниях.
Property - свойство класса.
А ты хочешь в свойствах класса отражать сторонние веши - список доступных файлов?
Это у тебя не прокатит.
Для этого используют что-то типа QFileDialog.
Записан
footballer
Гость
« Ответ #6 : Май 04, 2007, 12:58 »

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

  Ты наверное сделаешь для себя открытие
когда попробуешь поменять family у QFont
в дизайнере и увидишь выпадающий список.
А это QString между прочим
Записан
Muller
Гость
« Ответ #7 : Май 07, 2007, 14:44 »

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

Сообщений: 587


Просмотр профиля
« Ответ #8 : Май 07, 2007, 19:33 »

Цитировать

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


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

Цитировать

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


to Muller
А вот "править" Qt - это не лучший выход. Это бессилие от непонимания.
Записан
Muller
Гость
« Ответ #9 : Май 08, 2007, 08:24 »

Цитата: "Mikhail"

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

Хорошо, сформулирую иначе: я написал свои библиотеки, используя код Qt Улыбающийся . При этом исходники в QTDIR остались нетронутыми. И теперь вместо libQtDesigner и libQtDesignerComponents подключаю к проекту их. Судя по коду, другого выхода нет, и плагинами это не лечится.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.