Russian Qt Forum

Qt => Общие вопросы => Тема начата: qtkoder777 от Октябрь 22, 2013, 12:46



Название: Как одной строкой создать свойство Q_PROPERTY ?
Отправлено: qtkoder777 от Октябрь 22, 2013, 12:46
Написал макрос: сразу создается и переменная член класса и методы доступа к ней, и прописывается Q_PROPERTY. Класс с таким макросом компилируется.
Но Q_PROPERTY не работает через макрос.
Q_PROPERTY работает только если в определении класса его прописать дополнительно.
 
Код
C++ (Qt)
#define MY_PROPERTY(Type,var)   \
private: \
Type var;\
public: \
const Type& get_##var()const{return var;}\
void set_##var(Type val){var=val;}\
Q_PROPERTY(Type var READ get_##var WRITE set_##var)

Можно ли написать макрос, который сделает всё в одну строку, или всё таки придётся дополнительно прописывать Q_PROPERTY?


Название: Re: Как одной строкой создать свойство Q_PROPERTY ?
Отправлено: alex312 от Октябрь 22, 2013, 13:50
Можно ли написать макрос, который сделает всё в одну строку, или всё таки придётся дополнительно прописывать Q_PROPERTY?
Тут, как мне кажется, или дополнительно прописывать Q_PROPERTY, или править moc, или перед мог пускать свою тулзень которая пропишет Q_PROPERTY.


Название: Re: Как одной строкой создать свойство Q_PROPERTY ?
Отправлено: Maestro от Октябрь 30, 2013, 03:07
Правой мышкой по Q_PROPERTY --> Рефакторинг --> Создание отсутствуюших членов Q_PROPERTY


Название: Re: Как одной строкой создать свойство Q_PROPERTY ?
Отправлено: qtkoder777 от Ноябрь 07, 2013, 12:13
Правой мышкой по Q_PROPERTY --> Рефакторинг --> Создание отсутствуюших членов Q_PROPERTY

Написал Q_PROPERTY в начале класса, щелкнул этот пункт и ничего. Что сделано не так?


Название: Re: Как одной строкой создать свойство Q_PROPERTY ?
Отправлено: alex312 от Ноябрь 07, 2013, 12:36
Написал Q_PROPERTY в начале класса, щелкнул этот пункт и ничего. Что сделано не так?
Возьми QtCreator посвежее.


Название: Re: Как одной строкой создать свойство Q_PROPERTY ?
Отправлено: qtkoder777 от Ноябрь 07, 2013, 15:14
Скачал неделю назад версия 2.8.1


Название: Re: Как одной строкой создать свойство Q_PROPERTY ?
Отправлено: alex312 от Ноябрь 07, 2013, 17:49
Скачал неделю назад версия 2.8.1
Cпециально проверил, в 2.7 автодополнение свойства уже есть.


Название: Re: Как одной строкой создать свойство Q_PROPERTY ?
Отправлено: Maestro от Ноябрь 10, 2013, 02:30
Прочтите это http://qt-project.org/doc/qtcreator-2.8/creator-editor-refactoring.html (http://qt-project.org/doc/qtcreator-2.8/creator-editor-refactoring.html)
Неплохо-бы получше узнать инструмент которым пользуетесь.