QML对象var属性为空,来自cpp的QVariant(QJSValue,)



我正在使用Qt5.5(来自archlinux x86_64 repos的5.5.1-3),并希望从cpp读取qml对象属性,但还没有成功:

qml部分:

import QtQuick 2.2
Item {
    signal doSomething()
    signal myDataChanged()
    property string myString: ""
    property var myObject: ({})
    onDoSomething(): {
        myString = "myStringValue"
        myObject = {"foo":"bar"}    
        myDataChanged()
    }
}

cpp部分:

void MyClass::processChangedData() {
    qDebug()<<sender()->property("myString");
    qDebug()<<sender()->property("myObject");
}

myDataChanged()信号连接到MyClass::processChangedData()

输出:

QVariant(QString, "myString")
QVariant(QJSValue, )

你能帮我吗?我想从cpp部分获取qml对象属性的数据。

听起来你应该能够做到:

auto js = sender()->property("myObject").value<QJSValue>();
qDebug() << js.property("foo").toString();

并使用QJSValue中的其他方法。

相关内容

  • 没有找到相关文章

最新更新