news 2026/6/15 20:17:40

PySide系列-07-QMainWindow

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PySide系列-07-QMainWindow

PySide step by step系列

1、QMainWindow

QMainWindow 是一个继承自 QWidget 的类,专门设计用来作为主应用程序窗口。它内置了多个标准的 GUI 组件区域,方便开发人员快速搭建界面。

QMainWindow 提供了以下几个核心区域(布局区域),你可以将不同的控件放入这些区域:

  • 菜单栏
  • 工具栏
  • 中心部件(只能有一个)
  • 状态栏
  • 停靠窗口

2、代码示例(只布局)

fromPySide6.QtWidgetsimport(QMainWindow,QPlainTextEdit,QMenuBar,QStatusBar,QVBoxLayout,QWidget,QDockWidget,QLabel)fromPySide6.QtCoreimportQtclassMyWidget(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("记事本")self.resize(800,600)# 创建中央部件和布局central_widget=QWidget()self.setCentralWidget(central_widget)layout=QVBoxLayout(central_widget)layout.setContentsMargins(0,0,0,0)# 创建文本编辑区域self.text_edit=QPlainTextEdit()self.text_edit.setLineWrapMode(QPlainTextEdit.WidgetWidth)# 自动换行layout.addWidget(self.text_edit)# 创建菜单栏self.create_menu_bar()# 创建工具栏self.toolBar=self.addToolBar("toolBar")self.toolBar.addAction("工具栏-新建")self.toolBar.addAction("工具栏-打开")self.toolBar.addSeparator()self.toolBar.addAction("工具栏-保存")# 创建状态栏self.statusBar=QStatusBar()self.setStatusBar(self.statusBar)self.statusBar.showMessage("就绪")defcreate_menu_bar(self):menu_bar=QMenuBar()self.setMenuBar(menu_bar)# 文件菜单file_menu=menu_bar.addMenu("文件(&F)")file_menu.addAction("新建(&N)")file_menu.addAction("打开(&O)...")file_menu.addAction("保存(&S)")file_menu.addAction("另存为(&A)...")file_menu.addSeparator()file_menu.addAction("退出(&X)")# 编辑菜单edit_menu=menu_bar.addMenu("编辑(&E)")edit_menu.addAction("撤销(&U)")edit_menu.addSeparator()edit_menu.addAction("剪切(&T)")edit_menu.addAction("复制(&C)")edit_menu.addAction("粘贴(&P)")edit_menu.addAction("删除(&L)")edit_menu.addSeparator()edit_menu.addAction("查找(&F)...")edit_menu.addAction("替换(&R)...")edit_menu.addAction("转到(&G)...")edit_menu.addSeparator()edit_menu.addAction("全选(&A)")# 格式菜单format_menu=menu_bar.addMenu("格式(&O)")format_menu.addAction("自动换行(&W)")format_menu.addAction("字体(&F)...")# 查看菜单view_menu=menu_bar.addMenu("查看(&V)")status_bar_action=view_menu.addAction("状态栏(&S)")status_bar_action.setCheckable(True)status_bar_action.setChecked(True)# 帮助菜单help_menu=menu_bar.addMenu("帮助(&H)")help_menu.addAction("手册(&H)")help_menu.addAction("关于(&A)")dock=QDockWidget("停靠窗扣",self)dock.setAllowedAreas(Qt.LeftDockWidgetArea|Qt.RightDockWidgetArea)info_label=QLabel("停靠窗口内容")info_label.setAlignment(Qt.AlignCenter)dock.setWidget(info_label)self.addDockWidget(Qt.RightDockWidgetArea,dock)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:33:28

电动汽车与燃油车仿真模型大揭秘

纯电动汽车BEV 电机 电池 VCU控制仿真模型纯电动汽车整车仿真测试; 附赠传统燃油车 仿真模型 发动机 传动系 车辆模型 . 模型均有直观的模型搭建说明描述!嘿,各位技术宅们!今天咱来唠唠超酷的纯电动汽车(BEV)和传统燃…

作者头像 李华
网站建设 2026/6/15 11:30:24

科技设备免费处理的秘密技巧:快速回收打印机和笔记本电脑

我们都有那样一个"墓地"衣柜,里面塞满了旧笔记本电脑和缠成一团的打印机电缆,因为没人愿意处理正确丢弃它们的麻烦事。但到了2026年,让电脑和其他科技设备烂在那里不仅浪费空间,更错失了为地球做最基本贡献而不花一分钱…

作者头像 李华
网站建设 2026/6/15 11:30:56

研究人员通过数据投毒技术保护知识图谱免遭盗用

来自中国和新加坡高校的研究人员开发了一项新技术,能够使被盗的知识图谱数据在未经授权的情况下被整合到GraphRAG AI系统中时变得无用。大语言模型基于训练数据进行预测,无法有效回应其他数据的查询。AI行业通过检索增强生成(RAG)…

作者头像 李华
网站建设 2026/6/12 21:52:34

打造学生信息管理系统:从构思到实现

简单学生信息管理系统(附源码),原生无边框winformsqlite,主要运用窗体继承动态导航菜单反射创建窗体对象家事件刷新数据,自定义4种类型弹窗类型对话框,数据分层,增删查改都实现了,其…

作者头像 李华
网站建设 2026/6/15 6:57:02

聊聊A*算法与Dijkstra算法的Matlab及C实现

A*算法matlab程序,附送c程序 Djikstra算法matlab程序 代码特点: 1. matlab读入excel制作的地图,障碍物为1; 2.设置起始点和终止点,A*算法会输出一条近最优路径,因为这是启发式算法; 3.Dijkstra算…

作者头像 李华
网站建设 2026/6/15 6:59:04

探索 Asp.Net CRM 客户关系管理系统:企业发展的得力助手

Asp.Net CRM客户关系管理系统 CRM是为帮助企业快速成长发展而开发的一款优秀的CRM客户关系管理系统,能帮助您管理客户与销售,能协同进行工作,并能方便的进行二次开发与扩 展,是您企业信息化进程最佳的选择;是一套针对各行业众多企…

作者头像 李华