pyqt6多界面切换
时间: 2024-01-31 08:10:57 浏览: 52
在PyQt6中实现多界面切换可以使用QStackedWidget组件。QStackedWidget是一个堆叠窗口部件,可以在其中添加多个界面,并通过切换当前显示的界面来实现多界面切换的效果。
以下是一个使用QStackedWidget实现多界面切换的示例代码:
```python
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QPushButton, QWidget, QLabel, QStackedWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.stacked_widget = QStackedWidget()
self.setCentralWidget(self.stacked_widget)
# 创建多个界面
self.page1 = QWidget()
layout1 = QVBoxLayout()
label1 = QLabel("Page 1")
layout1.addWidget(label1)
self.page1.setLayout(layout1)
self.page2 = QWidget()
layout2 = QVBoxLayout()
label2 = QLabel("Page 2")
layout2.addWidget(label2)
self.page2.setLayout(layout2)
self.page3 = QWidget()
layout3 = QVBoxLayout()
label3 = QLabel("Page 3")
layout3.addWidget(label3)
self.page3.setLayout(layout3)
# 将界面添加到QStackedWidget中
self.stacked_widget.addWidget(self.page1)
self.stacked_widget.addWidget(self.page2)
self.stacked_widget.addWidget(self.page3)
# 创建切换界面的按钮
self.button1 = QPushButton("Page 1")
self.button1.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page1))
self.button2 = QPushButton("Page 2")
self.button2.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page2))
self.button3 = QPushButton("Page 3")
self.button3.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page3))
# 创建布局并将按钮添加到布局中
layout = QVBoxLayout()
layout.addWidget(self.button1)
layout.addWidget(self.button2)
layout.addWidget(self.button3)
# 创建一个主窗口部件,并将布局设置为主窗口部件的布局
widget = QWidget()
widget.setLayout(layout)
# 将主窗口部件设置为中央部件
self.setCentralWidget(widget)
app = QApplication([])
window = MainWindow()
window.show()
app.exec()
```
运行以上代码,将会显示一个带有三个按钮的窗口,点击按钮可以切换显示不同的界面。