从 QML 访问 属性 setProperty

Access property set with setProperty from QML

我有一个 QObject 的子类,并使用 setProperty 在 C++ 中为其添加动态属性。

现在我想在 QML 中使用它们。我本来希望能够像使用 Q_PROPERTY 定义的属性那样访问它们,但这只会产生 undefined.

目前无法。作为一种可能的解决方法,您可以从 C++ 对象向 QML 公开一些辅助函数以获取动态 属性:

的值
TestObject::TestObject(QObject *parent) : QObject(parent)
{
    setProperty("test","testvalue");
}

QVariant TestObject::getDynamicProperty(const QString &name)
{
    return property(name.toLatin1());
}

因此您将能够从 QML 中获取其值:

TestObject {
    Component.onCompleted: console.log(getDynamicProperty("test"));
}