2017-12-21 21 views
0

StackView QMLタイプの中に3つのコンポーネントがあり、push()pop()を使用してビューを変更できます。さらに、私はそのUIにpush()またはpop()を実行すると、ユーザー構成に基づいてUI(Component)を更新したいと思います。ドキュメントを見て、私はこの場合にはStack.statusが面白いと感じましたが、それをどのように使用するかはわかりません。QML StackViewのステータスプロパティの使い方は?

誰かがそれに関するいくつかの例を挙げることができますか?以下は

私はスタックビューに私の画面をロードし、ナビゲートする方法のコードです:

StackView { 
    id: stackView 
    visible: false 
    //  rotation: 180 
    anchors.fill: parent 

    initialItem: componentHome 

    Component.onCompleted: 
    { 

    } 

} 
Component 
{ 
    id: componentHome 
    Home 
    { 
     //This is how I traverse the screens 
     onMenuClicked: 
     { 
      console.log("opening "+name+" screen") 
      if(name === "settings") 
      { 
       //Here, for eg. how to update UI in Settings screen before pushing it? 
       stackView.push(componentSettings) 
      } 
     } 
    } 
} 
Component 
{ 
    id: componentSettings 
    Settings 
    { 
    } 
} 
Component 
{ 
    id: componentPlay 
    Play 
    { 
    } 
} 

答えて

0

私は次のようにしていることだろう。

import QtQuick.Controls 2.1 

StackView { 
    id: stack 
    anchors.fill: parent 
    initialItem: page1 
} 

Button { 
    text: "add page" 
    onClicked: { 
     var page = stack.push(page2, {color: "red"}); 
     //page.color = "red"; // - that also should work 
    } 
} 

Component { 
    id: page1 
    Rectangle { 
     color: "black" 
    } 
} 

Component { 
    id: page2 
    Rectangle { 
     color: "black" 
    } 
} 
0

コンポーネントにStackView.onStatusChanged:を使用すると、あなたを助ける必要がありますしかし、慎重に - あなたのコンポーネントがポップされたか、別のコンポーネントがStackView.statusによってプッシュされているかを定義することはできません(少なくとも1年前です。あなたは小さなディスカッションで見つけることができます。my old question

関連する問題