检测来自C 的静态添加的QML儿童



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()的基类实现。

最新更新