Задать вопрос
PavelK
@PavelK

Как сделать Q_PROPERTY в интерфейсе без наследования от QObject?

Приветствую!
В общем очень хочется сделать, что бы можно было Q_PROPERY сигналы и слоты вынести в интерфейсы.
С сигналами и слотами проблем почти не возникло и вынеслись нормально,
а вот Q_PROPERTY не хочет.
А именно не хочет moс файл генерироваться, если нет Q_OBJECT или Q_GADGET
если прописывать, то Qt начинает ругаться, что класс должен быть унаследован от QObject.
Попробовал вручную внести правки в moc_*.cpp и удалось добиться нормальной работы Q_PROPERTY, но разумеется при перекомпиляции все изменения в moc файле вытираются и делать отдельный moc это по-моему адцкий костыль.

Наследовать интерфейс от QObject не вариант - в дальнейшем может быть множественное наследование и может получиться, что будет наследование от нескольких QObject, на что Qt будет ругаться матом.

Подскажите, как сделать так, что бы Q_PROPERTY можно было объявлять в интерфейсе? Либо может можно как-либо переопределить работу moc генератора(запретить генерирование staticMetaObject) без его пересборки из сырцов.
  • Вопрос задан
  • 484 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
PavelK
@PavelK Автор вопроса
В общем, стоило поглубже копнуть qmetatype.h в пошаговом режиме отладки, и оказывается таки можно.
Прошло только 4 дня.... :D и я всё еще до конца не разобрался :D
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы