2016-03-27 26 views
2

私はQML StackViewを持っています。このアプリケーションでは、多くのコンポーネントがプッシュされています。私がしたいことは、実際にはアプリケーションのある時点でStackViewを初期状態にリセットします。 StackViewは次のように定義されています。QML StackViewを初期状態にリセットする

StackView { 
    id: soemID 
    initialItem: myItem 
} 

アプリケーションが進むにつれて、プッシュされポップされます。私は初期の項目だけを保持するためにこれをリセットする便利な方法を探しましたが、見つけられませんでした。これを行う唯一の方法は、アイテムが1つだけ残るまでアイテムを連続してポップすることでしょうか?

+1

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

答えて

5
soemID.pop(null) 

トリックを行う必要があります。項目がnullの場合、(は含まない)までのすべての項目が最初の項目 がポップされます

項目のポップ(項目項目=未定義)

:StackViewのドキュメントから 。指定されていない場合、現在の項目のみがポップされた になります....

+0

これは私の以前のソリューションよりも優れています。 – Luca

1

コメントで示唆されているように、スタックをクリアしてから最初の項目を押すと、そのトリックが実行されました。

soemID.clear() 
soemID.push(soemID.initialItem) 
関連する問題