从 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 实现
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()
.