Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Q_PROPERTY на сколько сильно необходим

Автор: Delphist 7.8.2008, 13:08

Скажите, пожалуйса есть ли где-нить документация на русском по Q_PROPERTY, для чего нужен и как пользваться, например что означает вот это:

Q_PROPERTY(QDate date_property READ getDateProperty WRITE setDateProperty USER true)
в частности что говорит фраза USER true

я так понимаю это вещь сильно похожа на property в Delphi

Автор: niXman 7.8.2008, 14:06

Насколько сильно необходим...? - У меня небыло необходимости в использовании оного, ни разу!
Это:
Q_PROPERTY(QDate date_property READ getDateProperty WRITE setDateProperty USER true)
Означает следующее:
Проперти date_property типа QDate.
Для чтения вызывается функция QDate getDateProperty()
Для записи вызывается функция void setDateProperty(const QDate&).
По поводу USER true неуверен, но походу это флаг на права доступа.

Автор: ViGOur 7.8.2008, 14:11

Документация есть, но она пока на английском: http://crossplatform.ru/documentation/qtdoc4.3/properties.php
Там вот что написано по поводу свойства USER:

Цитата
USER specifies that a particular property in a class (typically a widget) contains user-facing information, and is the main property that a user will modify via the GUI when using instances of the class in an application.


С дельфями очень мало работал, потому не могу сказать как и что.

Автор: Delphist 7.8.2008, 15:29

Цитата(ViGOur @ 7.8.2008, 14:11) *
USER specifies that a particular property in a class (typically a widget) contains user-facing information, and is the main property that a user will modify via the GUI when using instances of the class in an application.


Не фига не понятно из этой справки

Автор: Litkevich Yuriy 7.8.2008, 16:44

Цитата(Delphist @ 7.8.2008, 17:08) *
для чего нужен

нужен при создании плагинов для Дизайнера, т.е. чтобы описать уникальные свойства виджета собственной разработки. Тем самым пользователь, который будет использовать твой виджет в дизайнере сможет изменять эти свойства прямо в дизайнере. Свойства не объявленные таким макросом в Дизайнере не видны.

Цитата(Delphist @ 7.8.2008, 17:08) *
что говорит фраза USER true

Перевод наскору руку:
"USER определяет, что отдельное свойство класса (как правило, виджет), содержит информацию для пользователя и является главным свойством, которое пользователь будет модифицировать с помощью графического интерфейса при использовании экземпляра класса в приложении."

Цитата(Delphist @ 7.8.2008, 17:08) *
я так понимаю это вещь сильно похожа на property в Delphi
От части да, если вести реч о создании собственного компонента, но в Делфи это встроеная вещь и обращение к ней осуществляется через код и через визуальную среду проектирования.
Для приведенного тобой примера в Делфи былоб, примерно, так:
// Чтение данных из date_property в temp
temp := date_property;
// Запись данных из temp в date_property
date_property := temp
но в Qt (С++) так нельзя, можно только вызывать функции (приблизительный Дельфийский код):
// Чтение данных из date_property в temp
temp := date_property.getDateProperty();
// Запись данных из temp в date_property
date_property.setDateProperty(temp);


Т.е., повторюсь, это нужно только для Дизайнера, для визуального изменения свойства

Автор: void* 7.8.2008, 17:14

вот http://www.forum.crossplatform.ru/index.php?showtopic=981 я приводил пример использования этого макроса

Автор: Litkevich Yuriy 7.8.2008, 17:18

void*, ты так человеку совсем мозг сломаешь, дай ему освоится.

Автор: Delphist 7.8.2008, 18:24

Цитата(Litkevich Yuriy @ 7.8.2008, 17:18) *
void*, ты так человеку совсем мозг сломаешь, дай ему освоится.

Не не нормально

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)