0xd34df00d 28.11.2012 12:28 Azoth_mac

moc не умеет раскрывать макросы, поэтому Q_PROPERTY тупо не работает, и даже не валится с ошибкой, если написать так:
#define DECL_PROP(group,col) \
Q_PROPERTY(QColor color_##group##_##col READ Get##group##col NOTIFY colorsChanged) \
QColor Get##group##col () const { qDebug ("%s", Q_FUNC_INFO); return GetColor (#group, #col); }

DECL_PROP(TextView, TopColor)

Придется копипастить :(

Recommended by:

@pooq: моча съела говно

1. generatorglukoff 28.11.2012 12:33 Воркота

подсунь в moc выхлоп cpp
как-то так

2. 0xd34df00dgeneratorglukoff /1 28.11.2012 12:33 Azoth_mac

Очевидно, плохая идея. cpp мне Q_PROPERTY съест, например, и мок их не увидит.

3. gelraen 28.11.2012 12:35

cpp? нет, не слышал.

это я про moc, если что

4. 0xd34df00dgelraen /3 28.11.2012 12:35 Azoth_mac

Им, очевидно, cpp нужно реимплементить. Нельзя его вызывать.

5. gelraen0xd34df00d /4 28.11.2012 12:45 work-laptop

почему нельзя-то? насколько я понимаю, достаточно запилить один -D, который будет убирать определения этих макросов для moc

6. 0xd34df00dgelraen /5 28.11.2012 12:47 Azoth_mac

Че.

7. gelraen0xd34df00d /6 28.11.2012 12:48 work-laptop

1) убираем определения макросов
2) запускаем cpp
3) cpp оставляет всякие Q_PROPERTY как есть, потому что не знает о них
4) ...
5) PROFIT!

Do you really want to delete ?