QML:从 C++ 中的非可视项访问父项
QML: access parent from non-visual item in C++
在我的应用程序中,我有一个派生自 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 项的父项?
据我所知,无法从 MyItem
构造函数访问父项。 QML 首先构造对象,然后将其 parent
属性 设置为 QML 层次结构中的适当项目。
但是,在构造对象之后,调用QObject::parent
方法将会得到你期望的结果。到调用 Component.onCompleted
时,将设置父对象。您可以使用来自该处理程序的父数据完成对象初始化。
在我的应用程序中,我有一个派生自 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 项的父项?
据我所知,无法从 MyItem
构造函数访问父项。 QML 首先构造对象,然后将其 parent
属性 设置为 QML 层次结构中的适当项目。
但是,在构造对象之后,调用QObject::parent
方法将会得到你期望的结果。到调用 Component.onCompleted
时,将设置父对象。您可以使用来自该处理程序的父数据完成对象初始化。