在PyQt5中,主要有三种核心窗口类型:QMainWindow、QDialog 和 QWidget,它们在应用场景、结构和功能上有明显区别。以下是详细对比:
一、三种窗口的核心区别
| 窗口类型 | 继承关系 | 典型结构 | 应用场景 | 交互特性 |
|---|---|---|---|---|
| QMainWindow | QWidget → QMainWindow | 包含菜单栏、工具栏、状态栏、中央部件 | 主应用程序窗口(如文本编辑器、IDE) | 长期运行,支持复杂布局 |
| QDialog | QWidget → QDialog | 简洁对话框布局(按钮、输入框等) | 临时交互(如设置窗口、确认框、文件选择) | 可设置为模态(阻塞主程序) |
| QWidget | 基类 | 无预设布局,纯容器组件 | 自定义控件、嵌入其他窗口的子组件 | 需手动管理布局和事件 |
二、详细特性解析
1. QMainWindow:主应用程序窗口
-
核心特性:
- 预设结构:包含顶部菜单栏(
menuBar)、侧边工具栏(addToolBar)、底部状态栏(statusBar)。 - 中央部件:通过
setCentralWidget()设置主工作区域(如文本编辑框、表格)。 - 布局管理:周边区域(菜单、工具条)自动管理,中央部件需手动布局。
- 预设结构:包含顶部菜单栏(
-
示例代码:
from PyQt5.QtWidgets import QMainWindow, QApplication, QTextEdit, QAction class MainApp(QMainWindow): def __init__(self): super().__init__() # 设置中央部件(文本编辑框) self.setCentralWidget(<

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



