访问QML中使用setProperty设置的属性



我有一个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"));
}

相关内容

  • 没有找到相关文章

最新更新