91 lines
2.9 KiB
Python
91 lines
2.9 KiB
Python
from PyQt5.QtWidgets import *
|
|
from PyQt5.QtCore import *
|
|
|
|
class Page1(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
layout = QVBoxLayout()
|
|
label = QLabel("这是页面 1")
|
|
layout.addWidget(label)
|
|
self.setLayout(layout)
|
|
|
|
class Page2(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
layout = QVBoxLayout()
|
|
label = QLabel("这是页面 2")
|
|
layout.addWidget(label)
|
|
self.setLayout(layout)
|
|
|
|
class Page3(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
layout = QVBoxLayout()
|
|
label = QLabel("这是页面 3")
|
|
layout.addWidget(label)
|
|
self.setLayout(layout)
|
|
|
|
class Page4(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
layout = QVBoxLayout()
|
|
label = QLabel("这是页面 4")
|
|
layout.addWidget(label)
|
|
self.setLayout(layout)
|
|
|
|
class MainWindow(QMainWindow):
|
|
def __init__(self):
|
|
super(MainWindow, self).__init__()
|
|
|
|
self.setWindowTitle("多页面切换示例")
|
|
|
|
# 创建顶部的水平布局
|
|
top_layout = QHBoxLayout()
|
|
|
|
# 创建页面切换按钮
|
|
self.page1_button = QPushButton("页面 1")
|
|
self.page2_button = QPushButton("页面 2")
|
|
self.page3_button = QPushButton("页面 3")
|
|
self.page4_button = QPushButton("页面 4")
|
|
|
|
# 将按钮添加到水平布局
|
|
top_layout.addWidget(self.page1_button)
|
|
top_layout.addWidget(self.page2_button)
|
|
top_layout.addWidget(self.page3_button)
|
|
top_layout.addWidget(self.page4_button)
|
|
|
|
# 创建页面容器
|
|
self.stacked_widget = QStackedWidget()
|
|
self.page1 = Page1()
|
|
self.page2 = Page2()
|
|
self.page3 = Page3()
|
|
self.page4 = Page4()
|
|
|
|
self.stacked_widget.addWidget(self.page1)
|
|
self.stacked_widget.addWidget(self.page2)
|
|
self.stacked_widget.addWidget(self.page3)
|
|
self.stacked_widget.addWidget(self.page4)
|
|
|
|
# 创建主布局,并将顶部布局和页面容器添加进去
|
|
main_layout = QVBoxLayout()
|
|
main_layout.addLayout(top_layout)
|
|
main_layout.addWidget(self.stacked_widget)
|
|
|
|
# 创建一个中心部件,并设置布局
|
|
central_widget = QWidget()
|
|
central_widget.setLayout(main_layout)
|
|
|
|
# 设置主窗口的中心部件
|
|
self.setCentralWidget(central_widget)
|
|
|
|
# 连接按钮的信号和槽,以切换页面
|
|
self.page1_button.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page1))
|
|
self.page2_button.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page2))
|
|
self.page3_button.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page3))
|
|
self.page4_button.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page4))
|
|
|
|
if __name__ == "__main__":
|
|
app = QApplication([])
|
|
window = MainWindow()
|
|
window.show()
|
|
app.exec_() |