news 2026/10/13 14:32:23

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/10/12 0:16:39

小程序计算机毕设之基于微信小程序的健康生活定制应用基于django+微信小程序的健康生活系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/10/11 15:46:58

Moxie Marlinspike推出注重隐私的ChatGPT替代方案Confer

如果你对隐私问题有所担忧,AI个人助手的兴起可能会让人感到不安。使用这些服务很难避免分享个人信息,而这些信息会被模型的母公司保留。随着OpenAI已经开始测试广告功能,很容易想象驱动Facebook和Google的数据收集模式会渗透到你的聊天机器人…

作者头像 李华
网站建设 2026/10/10 9:17:42

Panduit 数据中心布线设计实战解析

在现代数据中心架构中,网络布线是构建高性能、高可靠性系统的基础。Panduit Corp 作为业界领先的物理网络基础设施供应商,其覆盖铜缆与光缆的线束组件在数据中心布线设计中得到广泛应用。本文结合 Panduit 的铜缆与光缆布线设计实战经验,解析…

作者头像 李华
网站建设 2026/10/12 15:47:00

探索Green–Ampt入渗模型与Richards非饱和渗流

Green–Ampt入渗模型与Richards非饱和渗流,适用于各类型的均质土体入渗,包括且不限于边坡降雨入渗等 [1]模型简介:使用数值模拟软件COMSOL,以Lima试验分析使用Green-Ampt入渗模型的入渗率变化、最大入渗能力变化及土壤不同深度的压…

作者头像 李华
网站建设 2026/10/8 15:11:48

记忆力:解锁学业成就的核心引擎

我们正经历一场学习革命。当知识总量爆炸式增长,决定胜负的不再是投入时间的长度,而是记忆力的强度。记忆力,这项曾被视为“死记硬背”的底层能力,已成为连接高效学习与卓越成绩的隐形桥梁。真正的记忆力,是信息的智能…

作者头像 李华