在我的应用程序中,我有一个从QObject派生的自定义项。在指定的时刻,我需要访问其父级。但由于此项目不是QQuickItem后代,因此此处没有parentItem()
。
QML:
Item {
id: root
MyItem {
id: myitem
}
}
C ++
class MyItem : public QObject {
public:
explicit MyItem(QObject *parent = 0) {
// parent is always NULL here
}
}
所以我的问题 - 如何在C ++中访问非可视化QML项目的父项?
答案 0 :(得分:2)
据我所知,无法从MyItem
构造函数访问父项。 QML首先构造对象,然后将其parent
属性设置为QML层次结构中的相应项。
但是,在构造对象之后,调用QObject::parent
方法将给出您期望的结果。到调用Component.onCompleted
时,将设置父级。您可以使用该处理程序中的父数据完成对象初始化。