#pragma once #include class Bar : public QWidget { Q_OBJECT Q_PROPERTY(QString barProperty READ objectName) public: Bar(QObject * = NULL) : QWidget() { setObjectName("BarObjectName"); } signals: void propertyChanged(); }; class Foo : public QWidget { Q_OBJECT Q_PROPERTY(QWidget* bar READ bar NOTIFY propertyChanged) public: Foo(QObject * = NULL) : QWidget() { setObjectName("FooObjectName"); } Bar* bar() { return &_bar; } signals: void propertyChanged(); private: Bar _bar; };