2

QQuickItemmain.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");

如何quickProperty使用 C++ 端获取 set 的当前值my_quick_ptr

4

1 回答 1

4

如果您指的是 QML 属性,则可以使用以下方法:

QQmlProperty::read(my_quick_ptr, "quickProperty").toReal()

UsingQObject的工具也应该适用于 QML 属性:

my_quick_ptr->property("quickProperty").toReal()

此外,findChild返回 a 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
于 2017-09-01T20:51:43.157 回答