[英]How to retrieve the value of a QML property from C++?
I have the following QQuickItem
defined in main.qml
.我在
QQuickItem
定义了以下main.qml
。
Flickable {
id: my_quick
Accessible.name: "my_quick_item_name"
objectName: "myquickitem"
enabled: true
property real quickProperty: 1.0
}
I get my_quick
object in the following way on C++ side .我在C++ 端通过以下方式获得
my_quick
对象。
QQuickItem * my_quick_ptr = QmlEngine_Ptr->rootObjects()[0]->findChild<QQuickItem*>("myquickitem");
How can I get the current value of quickProperty
set, into C++ side using my_quick_ptr
?如何使用
my_quick_ptr
将quickProperty
的当前值设置到 C++ 端?
If you mean QML properties, you can use this approach:如果你的意思是 QML 属性,你可以使用这种方法:
QQmlProperty::read(my_quick_ptr, "quickProperty").toReal()
Using QObject
's facilities should also work for QML properties:使用
QObject
的工具也应该适用于 QML 属性:
my_quick_ptr->property("quickProperty").toReal()
Also, findChild
returns a QObject
, so you will need to do a safe cast to get a derived pointer from it:此外,
findChild
返回一个QObject
,因此您需要进行安全转换以从中获取派生指针:
QQuickItem * my_quick_ptr = qobject_cast<QQuickItem *>(QmlEngine_Ptr->rootObjects()[0]->findChild<QQuickItem*>("myquickitem"));
if (my_quick_ptr) // successfully found and cast, can be safely used
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.