qml StackView 窗口静态切换 示例代码
时间: 2024-09-07 18:03:33 浏览: 83
QML中的`StackView`是一个用于管理页面堆栈的组件,它允许开发者通过后进先出(LIFO)的方式切换不同的视图(或称之为页面)。开发者可以将视图推入堆栈或从堆栈中弹出视图,以此来实现在不同的视图之间进行切换。
以下是一个简单的示例代码,展示了如何使用`StackView`来实现窗口静态切换:
```qml
import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
Window {
visible: true
width: 640
height: 480
title: "StackView 示例"
// 定义StackView
StackView {
id: stackView
anchors.fill: parent
}
// 首个视图(首页)
Rectangle {
id: page1
color: "lightblue"
width: 300
height: 100
Text {
anchors.centerIn: parent
text: "这是首页"
}
}
// 第二个视图(详情页)
Rectangle {
id: page2
color: "lightgreen"
width: 300
height: 100
Text {
anchors.centerIn: parent
text: "这是详情页"
}
}
// 启动时先加载首页
Component.onCompleted: {
stackView.push(page1);
}
// 点击首页跳转到详情页的按钮
Button {
text: "进入详情页"
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
anchors.bottomMargin: 20
onClicked: {
stackView.push(page2);
}
}
// 点击详情页返回首页的按钮
Button {
text: "返回首页"
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
anchors.bottomMargin: 20
onClicked: {
stackView.pop();
}
}
}
```
在这个示例中,我们创建了一个窗口并放置了两个矩形视图,分别代表首页和详情页。窗口启动时默认加载首页视图。我们添加了两个按钮,一个用于从首页跳转到详情页,另一个用于从详情页返回首页。`StackView`会自动处理这两个视图之间的切换。
阅读全文