当前位置: 首页 > news >正文

【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
http://www.xdnf.cn/news/1464229.html

相关文章:

  • 中天互联:AI 重塑制造,解锁智能生产新效能​
  • [网鼎杯 2020 青龙组]AreUSerialz
  • Excel数据导出小记二: [大数据示例]
  • JP4-7-MyLesson后台前端(一)
  • yolov8部署在一台无显卡的电脑上,实时性强方案
  • 【分享】基于百度脑图,并使用Vue二次开发的用例脑图编辑器组件
  • 探讨Xsens在人形机器人研发中的四个核心应用
  • 产线相机问题分析思路
  • 基于单片机的六足机器人控制系统设计
  • HTML文本格式化标签
  • 嵌入式解谜日志—多路I/O复用
  • AI日报 - 2025年09月05日
  • 专题:2025电力行业5G工厂及绿色转型、市场机制研究报告|附100+份报告PDF、数据仪表盘汇总下载
  • Ubuntu22.04-ROS2下navgation2编译到运行
  • 机器学习入门,用Lima在macOS免费搭建Docker环境,彻底解决镜像与收费难题!
  • 基于muduo库的图床云共享存储项目(五)
  • webshell及冰蝎双击无法打开?
  • 如何将视频从 iPhone 转移到 Mac
  • 开学信息收集不再愁,这个工具太省心
  • JavaEE---7.文件操作和IO
  • The Algorithmic Foundations of Differential Privacy - 3(2)
  • Windows Server2012 R2 安装.NET Framework 3.5
  • 安科瑞基站智慧运维云平台:安全管控与节能降耗双效赋能
  • python库 Py2app 的详细使用(将 Python 脚本变为 MacOS 独立软件包)
  • MacOS 15.6 编译SDL3 Android平台多架构so库
  • 【NVIDIA AIQ】自定义函数实践
  • windows安装flash-attn记录
  • 在 Java Web 项目中优雅地实现验证码拦截与校验
  • 新闻丨重庆两江新区党工委副书记、管委会主任许宏球一行莅临华院计算考察指导
  • Java 内存模型与垃圾回收机制详解