gpt4 book ai didi

qt - 如何打印 QML 对象的自定义属性列表?

转载 作者:行者123 更新时间:2023-12-04 13:26:44 24 4
gpt4 key购买 nike

创建了一个 QML QtObject:

QtObject {
property int p: 42
property int q: 44
}

将其存储在局部变量 QObject *obj 后,如何打印所有自定义属性名称和可能的值(即上面示例中只有 pq)?我希望这适用于任何类(不仅仅是 QtObject ),而不是打印已经用 Q_PROPERTY 声明的属性。

澄清:“自定义”不是指通过 QObject::setProperty 添加的未使用 Q_PROPERTY 声明的属性。我的意思是通过 property <type> <name>: <value> 符号在 QML 中声明的属性,这些属性不是在该 QML 对象的 Q_PROPERTY 子类中使用 QObject 声明的。快速测试表明这些属性不会出现在 QObject::dynamicPropertyNames 中。

最佳答案

所有关于属性、可调用方法(槽)和信号的信息都由 QMetaObject 存储在每个 QObject 中。如果要列出对象中的所有属性:

QObject *obj = findObjectMethod();
QMetaObject *meta = obj->metaObject();
int n = meta->propertyCount();
for(int i = 0; i < n; ++i)
{
qDebug() << "Property: " << meta->property(i)->name();
}

关于qt - 如何打印 QML 对象的自定义属性列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26541846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com