LISHUZUOXUN_yangjiang/LSZXPagesLibrary/test.py

91 lines
2.9 KiB
Python
Raw Normal View History

2024-09-23 14:54:15 +08:00
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_()