PyQt界面编程:QDialog、QWidget、QMainWindow的面向过程与面向对象编程
- 其他
- 2025-08-28 18:12:03

文章目录 一、PyQt简介 二、面向过程编程 三、面向对象编程(推荐) 3.1 QWidget窗口 3.2 QMainWindow窗口 3.3 QDialog窗口 文档: .riverbankcomputing /static/Docs/PyQt5/ 一、PyQt简介
PyQt简介:PyQt 是一个用于创建图形用户界面(GUI)的 Python 库,它将 Qt 应用程序框架与 Python 语言结合。Qt 是一个功能强大的跨平台 C++ 库,广泛用于开发桌面、移动和嵌入式应用程序。PyQt 允许开发者利用 Qt 的强大功能,同时使用 Python 的简洁语法.
窗口分类:PyQt中常用的三种窗口分别是QDialog、QWidget、QMainWindow。它们分别用于不同的场景和需求。以下是它们的详细介绍与区别:
窗口类型 介绍 特点 应用场景 QWidget 是 PyQt 中所有用户界面对象的基类,它是其他窗口类(如 QDialog 和 QMainWindow)的父类。QWidget 可以作为一个独立的窗口,也可以作为其他窗口的子部件 轻量级:适合简单的窗口或自定义组件;灵活性:可以作为主窗口、对话框或嵌入其他窗口;无预设布局:需要手动设置布局和组件。 简单的自定义窗口。作为其他窗口的子部件(如面板、控件容器) QDialog 用于对话框的窗口类,通常用于弹出窗口,例如设置对话框、消息框等。QDialog 可以是模态(阻塞主窗口)或非模态(不阻塞主窗口) 对话框特性:适合短期的用户交互;模态支持:可以设置为模态对话框(exec_())或非模态对话框(show());预设按钮:支持 Ok、Cancel 等标准按钮。 弹出对话框(如设置、登录、消息提示)需要用户输入或确认的临时窗口 QMainWindow(推荐) 是用于主应用程序窗口的类,通常用于复杂的应用程序界面。它提供了菜单栏、工具栏、状态栏和中心窗口区域等标准组件 主窗口特性:适合复杂的应用程序;内置布局:支持菜单栏、工具栏、状态栏和中心部件;可扩展性:可以添加多个子窗口或自定义组件 主应用程序窗口(如文本编辑器、IDE)需要菜单栏、工具栏等标准组件的窗口。编程方式:PyQt主要包括面向过程编程和面向对象编程是两种常见的编程方式。它们各有特点,适用于不同的开发场景。以下是它们的详细介绍与应用场景:
方式 介绍 特点 场景 面向过程编程 是一种以过程(函数)为中心的编程方式,代码逻辑通过一系列函数调用来实现。在 PyQt 中,面向过程编程通常用于简单的应用程序或快速原型开发 代码简单直接:适合小型程序或快速实现功能;逻辑集中在函数中:通过函数调用来完成界面创建和事件处理;不易维护:随着程序规模增大,代码可能变得难以维护和扩展。 小型工具:功能简单、代码量少的应用程序;快速原型:需要快速验证想法或功能的场景;学习与实验:初学者学习 PyQt 的基本用法 面向对象编程(推荐) 是一种以对象为中心的编程方式,通过类和对象来组织代码。在 PyQt 中,面向对象编程是推荐的方式,适合中大型应用程序开发 代码结构清晰:通过类和对象组织代码,易于维护和扩展;封装性:将界面和逻辑封装在类中,提高代码复用性;适合复杂应用:适合需要模块化和可扩展性的应用程序 中大型应用程序:功能复杂、需要模块化设计的项目;可扩展性要求高:需要频繁添加新功能或修改现有功能;团队协作:代码结构清晰,便于多人协作开发推荐:PyQt编程中,推荐使用QMainWindow窗口类型,采用面向对象编程方式,利用UI与逻辑分离形式(即UI与逻辑做两个类或文件分开保存)
二、面向过程编程QWidget
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QVBoxLayout import sys # 按钮事件 def click_btn(): print("点击了按钮") app = QApplication(sys.argv) # 创建QWidget窗口及初始化 window = QWidget() window.setWindowTitle('标题') window.resize(400, 400) # 创建布局及加入界面 layout = QVBoxLayout() window.setLayout(layout) # 创建控件及加入布局中 btn = QPushButton("按钮") btn.clicked.connect(click_btn) # 按钮绑定函数 layout.addWidget(btn) # 界面展示 window.show() sys.exit(app.exec_())QMainWindow:QMainWindow窗口没有布局管理器,通常需要借助QWidget窗口作为其中心部件(或QDialog,推荐QWidget)
from PyQt5.QtWidgets import QWidget, QMainWindow, QApplication, QPushButton, QVBoxLayout import sys # 按钮事件 def click_btn(): print("点击了按钮") app = QApplication(sys.argv) # 创建QMainWindow窗口及初始化 window =PyQt界面编程:QDialog、QWidget、QMainWindow的面向过程与面向对象编程由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“PyQt界面编程:QDialog、QWidget、QMainWindow的面向过程与面向对象编程”