[英]How to retrieve the value of a QML property from C++?
我在QQuickItem
定義了以下main.qml
。
Flickable {
id: my_quick
Accessible.name: "my_quick_item_name"
objectName: "myquickitem"
enabled: true
property real quickProperty: 1.0
}
我在C++ 端通過以下方式獲得my_quick
對象。
QQuickItem * my_quick_ptr = QmlEngine_Ptr->rootObjects()[0]->findChild<QQuickItem*>("myquickitem");
如何使用my_quick_ptr
將quickProperty
的當前值設置到 C++ 端?
如果你的意思是 QML 屬性,你可以使用這種方法:
QQmlProperty::read(my_quick_ptr, "quickProperty").toReal()
使用QObject
的工具也應該適用於 QML 屬性:
my_quick_ptr->property("quickProperty").toReal()
此外, 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.