Qt:给定QObject上设置的动态属性列表?

Mor*_*Dev 2 c++ reflection qt qt5

使用QMetaObject我能够使用Q_PROPERTY宏浏览在编译时定义的所有属性...

现在我可以使用setProperty()... 浏览在运行时添加的所有动态属性...

可能吗?

vah*_*cho 7

您可以使用获取所有动态属性的列表QObject::dynamicPropertyNames().例如:

QList<QByteArray> dynamicProperties = object->dynamicPropertyNames();
Run Code Online (Sandbox Code Playgroud)

要获取属性值,请使用相同的QObject::property(const char * name )函数:

QVariant val = object->property(name );
Run Code Online (Sandbox Code Playgroud)