从 C++ 中检测静态添加的 QML 子项

Detect statically added QML children from c++

QML代码:

MyItem {
    Item {
        id: exampleChild
    }
}

C++代码:

class MyItem : public QQuickItem {
    Q_OBJECT

private:
    void QObject::childEvent(QChildEvent* event) override {
        qDebug() << "This is never fired when exampleChild is added.";
    }
};

这是一个关于这个问题的旧讨论,但没有任何进展:http://comments.gmane.org/gmane.comp.lib.qt.qml/1677

如何检测这些静态声明项的添加?

您可以覆盖 QQuickItem::itemChange() 并处理 QQuickItem::ItemChildAddedChange。不要忘记调用 itemChange().

的基础 class 实现