我有一个自定义的QML矩形,我希望在从C ++访问时区别于内置的QML矩形:
// CustomRectangle.qml
import QtQuick 2.3
Rectangle {
width: 10
height: 10
// property bool dummy // line A
}
当我实例化需要了解对象类型的C ++类时,调用QMetaObject::className
会返回QQuickRectangle
。但是,如果我通过取消注释第A行来添加属性,则QMetaObject::className
现在为CustomRectangle
。
如何在不添加属性的情况下将这样的类与QQuickRectangle区分开来?
答案 0 :(得分:2)
您可以使用objectName
属性访问该对象。例如:
<强> QML 强>
Rectangle {
width: 10
height: 10
objectName: "MyObject"
}
<强> C ++ 强>
QQuickItem *item = view.rootObject()->findChild<QQuickItem*>("MyObject");
item->doSomething();