簡體   English   中英

如何從 C++ 檢索 QML 屬性的值?

[英]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_ptrquickProperty的當前值設置到 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM