【Python】QT(PySide2、PyQt5):点击不同按钮显示不同页面
需求:点击不同按钮,显示不同页面。
本文使用pyside2两种方法实现。方法一:左侧按钮栏,右侧堆叠窗口部件。方法二:选项卡部件。
方法一:左侧按钮栏,右侧堆叠窗口部件
大体框架:
from PySide2.QtWidgets import QApplication, QMainWindow, QWidgetclass mywindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle('多界面')self.setGeometry(300, 80, 750, 550)# 中央部件(主页面)central = self.main_page()self.setCentralWidget(central)def main_page(self):'''主页面: 左侧按钮栏,右侧堆叠窗口部件'''mainpage = QWidget()...return mainpageif __name__ == '__main__':app = QApplication()window = mywindow()window.show()app.exec_()
创建主界面:
水平布局:左侧多个按钮,右侧堆叠窗口部件。其中左侧按钮为垂直布局。
from PySide2.QtWidgets import (QHBoxLayout, QVBoxLayout,QPushButton, QStackedWidget)
from PySide2.QtCore import Qtclass mywindow(QMainWindow):...def main_page(self):'''主页面: 左侧按钮栏,右侧堆叠窗口部件'''mainpage = QWidget()main_layout = QHBoxLayout(mainpage)# 左侧按钮栏btn_layout = QVBoxLayout()btn_layout.setAlignment(Qt.AlignTop)# 左侧按钮栏中的按钮创建btn_1 = QPushButton('btn 1')btn_2 = QPushButton('btn 2')self.left_btns = [btn_1, btn_2]# 按钮起始样式self.btn_origin_style = '''QPushButton {margin: 5px;padding: 15px;border: 1px solid black;border-radius: 5px;font-size: 18px; }'''# 设置按钮样式,并添加到按钮栏布局中for btn in self.left_btns:btn.setStyleSheet(self.btn_origin_style)btn.setFixedWidth(150)btn.setCheckable(True)btn_layout.addWidget(btn)# 右侧堆叠窗口部件管理多个页面,一次只显示一个页面 self.stacked_widget = QStackedWidget() # 各页面创建page_1 = self.create_page_1()page_2 = self.create_page_2()# 各页面添加到堆叠窗口部件中self.stacked_widget.addWidget(page_1)self.stacked_widget.addWidget(page_2)# 左侧按钮栏和堆叠窗口部件添加到主布局中main_layout.ad