Qt's property system does one more thing: it uses the staticly-named properties declared using Q_PROPERTY. These are available via metadata, and are integrated with dynamic properties as seen above. You could implement it as follows (this is not copied from Qt code):