QML StackView,如何在推送项目中导航?

时间:2017-11-08 13:24:33

标签: qt qml stackview

我的应用程序有一个包含两个QML文件的stackview。 我需要从QML文件本身内部从一个QML文件导航到另一个QML文件,在那里我无法访问stackview来推送或弹出。 我该如何设计呢?

Main.qml

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 个答案:

答案 0 :(得分:1)

你有很多选择。

可以在signal的{​​{1}} - 元素中添加root,并在QMLfile1.qml中与其相关联。改变将在那里进行。

您还可以main.qml添加property var callback - root的元素,在QMLfile1.qml注入push - StackView的方法实例化它时

最后,您不能隐藏id的{​​{1}}并跨文件边界访问它。我一般不喜欢那样。