我正在使用 Qt5.5(来自 archlinux x86_64 存储库的 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中的其他方法。
关于qt - QML 对象 var 属性为 null QVariant(QJSValue, ) 来自 cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33653240/