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 时,将设置父对象。您可以使用来自该处理程序的父数据完成对象初始化。