我正在使用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中的其他方法。