2017-12-21 4 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

입니다.
관련 문제