2016-06-27 26 views
2

QML-Code:statisch hinzugefügt QML Kinder von C++

MyItem { 
    Item { 
     id: exampleChild 
    } 
} 

C++ Code:

class MyItem : public QQuickItem { 
    Q_OBJECT 

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

Hier ist eine alte Diskussion darüber, die nirgendwo ging: http://comments.gmane.org/gmane.comp.lib.qt.qml/1677

Wie kann der Zusatz von diesen statisch deklarierten Gegenständen entdeckt werden?

Antwort

4

Sie können QQuickItem::itemChange() überschreiben und QQuickItem::ItemChildAddedChange behandeln. Vergessen Sie nicht, die Basisklassenimplementierung von itemChange() aufzurufen.

+0

Ja, das funktioniert. Ich denke, es lohnt sich auch zu erwähnen, dass das hinzugefügte Kind auf 'QQuickItem' basieren muss; 'QObject' basierte Kinder werden immer noch nicht erkannt. –