2017-11-08 17 views
0

내 앱에 두 개의 QML 파일이있는 스택 뷰가 있습니다. 그리고 QML 파일 내에서 다른 QML 파일로 이동할 필요가 있습니다. QML 파일 자체를 push 또는 pop하기 위해 stackview에 액세스 할 수 없습니다. 어떻게 설계해야합니까? Main.qmlQML StackView, 푸시 된 항목 내에서 이동하는 방법?

Rectangle 
{ 
    id: mainBkg 
    color: "white" 
    width: Screen.width 
    height: Screen.height 

    //Tickes every globalTimer.interval 
    property int globalTick: 0 


    Statusbar 
    { 
     width: Screen.width 
     height: Screen.height*0.2 
     id: statusBar 
     Rectangle 
     { 
     width: parent.width 
     height: parent.height*0.2 
     anchors.fill: parent 
     color: "green" 

     Text { 
      id: t 
      text: qsTr("QMLfile1") 

     } 
     } 
    }//end of statusbar 

    StackView { 
     id: stackView 
     anchors.top: statusBar.bottom 
     anchors.centerIn: parent 

     //What should be here? So that stackView 
     //will be available inside the loaded items. 
     initialItem: 
    } 
} 

다음

두 QML 파일입니다

QMLfile1.qml

Rectangle 
{ 
    width: parent.width 
    height: parent.height*0.2 

    anchors.fill: parent 
    color: "green" 


    Text { 
     id: t 
     text: qsTr("QMLfile1") 

    } 
    MouseArea:{ 
     onClicked: //move to other QML file in stackview 
    } 
} 

내가 다른 QML 위처럼 파일이 있습니다.

+1

제 상상력을 높이기 위해 몇 가지 코드를 공유하십시오. – derM

+0

코드를 설명하는 소스 코드를 제공해야합니다. "스택 뷰에 액세스 할 수 없습니다"라는 것은 무슨 뜻입니까? – folibis

+0

죄송합니다. 코드로 업데이트했습니다. 내가 코드를 추가하지 않은 이유는 샘플 StackView 코드가 그렇게 비슷하기 때문입니다. –

답변

1

많은 옵션이 있습니다.

하나는 main.qml에에 QMLfile1.qmlsignalroot - 요소를 추가하고 연결하는 것입니다. 변경 사항이 여기에서 수행됩니다.

또한 그것을 인스턴스화 할 때 당신이 StackViewpush -method를 주입 QMLfile1.qmlproperty var callbackroot - 요소를 추가 할 수 있습니다.

마지막으로 StackViewid을 음영 처리하여 파일 경계를 넘어 액세스 할 수 있습니다. 나는 일반적으로 그것을 좋아하지 않는다.

+0

안녕하세요. 예제 코드를 제공해 주시겠습니까? –

+0

죄송합니다, 지금 시간이 거의 없습니다. 계획 한 유스 케이스에 대해 좀 더 자세히 설명해 주시겠습니까? 그건 내가 어떤 도움이 될지, 어떤 선택이 당신에게 가장 적합한 지 ... 만약 그렇다면. 'StackLayout' 또는'SwipeView'가 당신이 찾고있는 것보다 더 좋을지도 모릅니다. – derM

+0

고마워요. 나는 그것을 어떻게하는지 알아 냈습니다. QML 파일에 StackView가있는 각 QML 파일의 구성 요소를 만들었습니다. –