Sie haben eine Reihe von Problemen in Ihrem Versuch oben ... Zuerst müssen Sie rückwärts iterieren, weil Sie den Inhalt der Kinder verschieben würden, während Sie fortfahren (dh, wenn Sie # 1, Nummer löschen # 2 würde Kind Nr. 1 werden und dann würden Sie gehen, um # 2 zu löschen, was das alte Kind Nr. 3 wäre).
Zweitens müssen Sie auf die Kinder anders zugreifen. Die Funktion childAt () dient zum Suchen eines untergeordneten Objekts an einem bestimmten x, y auf dem Bildschirm und nicht an einer Position in einer Liste.
Versuchen Sie es stattdessen:
%Vor%Ich möchte nur & amp; Fügen Sie ein Fragment aus der Dokumentation ein:
Beachten Sie, dass Sie Objekte, die dynamisch von QML-Objektfactorys (wie Loader und Repeater) erstellt wurden, nie manuell löschen sollten. Vermeiden Sie auch das Löschen von Objekten, die Sie nicht dynamisch selbst erstellt haben .
Dann lautet die Antwort, dass Sie es nicht tun sollten! Versuchen Sie, das Objekt dynamisch zu erstellen, wenn Sie es später löschen möchten.
Als Ergänzung zu Atrons Antwort beachten Sie, dass die Dokumentation erwähnt ausdrücklich, dass destroy
ein statisch erzeugtes Objekt manuell nicht erlaubt ist:
%Vor%Dies würde zu einem Fehler führen, da Objekte nur dynamisch sein können zerstört, wenn sie dynamisch erstellt wurden.
Daher stimme ich mit mshefiti überein, dass die richtige Lösung (für Elemente, die nicht dynamisch erstellt werden) ist:
%Vor%Tags und Links javascript qt grid qml children