我在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");
如何可以使用quickProperty
将my_quick_ptr
设置的当前值设置到C ++端?
答案 0 :(得分:3)
如果您指的是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