【问题标题】:How to open new page from page which is open from stackview in Qt如何从 Qt 中的 stackview 打开的页面打开新页面
【发布时间】:2019-12-13 13:02:53
【问题描述】:

我在 main.qml 中有 StackView。我使用 stackview 从 main.qml 推送 menu.qml 文件。我正在尝试访问 menu.qml 文件中的 stackview 以打开新项目。有没有一种方法可以让我们使用 stackview 推送具有属性的组件/项目?我的组件基本上是不同视图的.qml 文件

 ApplicationWindow {
id: settingsWindow

        StackView {
            id: stack
            initialItem: view

            Component {
                id: view

                MouseArea {

                    onClicked: stack.push(view)
                }
            }
        }

      Button{
        id: button1
        onClicked: {
                stack.pop(StackView.Immediate)
                stack.push (Qt.resolvedUrl("menu.qml"))
        }
       }
    }

menu.qml

 Item {
 Button{
 id: button1  
 onclicked : {  stack.push (Qt.resolvedUrl("new.qml"))  }
    }
   }

【问题讨论】:

    标签: qt qml qtquickcontrols2 stackview


    【解决方案1】:

    假设您的意思是要从您推送的页面访问 StackView 对象。

    StackView 有一个附加属性,可让您获得对拥有该页面的视图的引用。

    长话短说,您可以在 Menu.qml 中执行以下操作:

    Item {  
        id: root                                                               
        Button {                                                            
            id: button1                                                    
    
            onClicked: { root.StackView.view.push(Qt.resolvedUrl("new.qml")) } 
        }                                                                  
    }        
    

    https://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html#view-attached-prop

    【讨论】:

    • StackView.view 似乎为空/空。那是我尝试时抛出的错误
    • 您需要使用正确的 id 对其进行限定。有关示例,请参阅this 答案。在这种情况下,它将是根项目(需要给它一个 id)。我已经更新了答案。
    【解决方案2】:

    最终在 StackView 中创建每个页面作为组件属性,然后使用信号推送每个页面。将信号添加到每个页面并将其连接到存在 stackview 的主页。这个答案有帮助 https://stackoverflow.com/a/45354861/11288640

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多