Untergeordnete Elemente von QML Grid löschen

8

Ich möchte die Kinder eines QML-Grids durchlaufen und jede davon mit Javascript zerstören.

%Vor%

Ich habe versucht, so etwas zu tun, aber es funktioniert nicht so weit.

%Vor%     
alex 13.01.2012, 13:15
quelle

4 Antworten

13

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%     
Wes Hardaker 13.01.2012, 15:03
quelle
4

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.

Dokumentation

    
albertTaberner 17.08.2015 10:11
quelle
3

oder Sie können einfach sagen: grid.children = "";

    
mshefiti 25.12.2014 18:28
quelle
0

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%     
m7913d 30.07.2017 12:49
quelle

Tags und Links