2016-03-27 15 views
2

Ich habe eine QML , die während der Anwendung viele Komponenten hat, die zu ihm geschoben werden. Was ich tun möchte, ist, den StackView tatsächlich zu irgendeinem Zeitpunkt während der Anwendung in seinen Anfangszustand zurückzusetzen. Der StackView ist definiert als:Zurücksetzen eines QML StackView in den Ausgangszustand

StackView { 
    id: soemID 
    initialItem: myItem 
} 

Während die Anwendung weitergeht, werden Dinge gedrängt und gepoppt. Ich suchte nach einem bequemen Weg, um dies zurückzusetzen, um nur den ursprünglichen Gegenstand zu halten, aber ich konnte ihn nicht finden. Ist der einzige Weg dies zu tun, die Gegenstände nacheinander zu poppen, bis nur noch ein Gegenstand übrig ist?

+1

Was [StackView.clear()] (http://doc.qt.io/qt-5/qml-qtquick-controls -stackview.html # Klartext-Methode)? – folibis

Antwort

5
soemID.pop(null) 

sollte es tun. Von StackView Dokumentation:

Artikel pop (Artikel item = undefined)

Wenn Artikel null ist, werden alle Elemente bis auf das erste Element (jedoch nicht einschließlich) wird geknallt. Wenn nicht angegeben, wird nur der aktuelle Eintrag geknallt ....

+0

Das ist besser als meine vorherige Lösung. – Luca

1

Wie vom Kommentar vorgeschlagen, hat das Löschen des Stapels und das Drücken des ursprünglichen Elements den Trick gemacht.

soemID.clear() 
soemID.push(soemID.initialItem) 
Verwandte Themen