文章目录
前言
PyQt 作为 Python 中最强大的跨平台 GUI 开发框架之一,为开发者提供了高效构建桌面应用程序的能力。本文旨在系统介绍 PyQt 的基本概念、核心特性、安装配置方法及常用工具的使用,帮助初学者快速入门并掌握其基础应用。无论您是希望开发小型工具还是复杂应用,本文都将为您提供清晰的指引。
1. PyQT的概念
1.1 概念
PyQt 是 Python 编程语言下的一款桌面应用开发框架,基于 Qt 框架的 Python 封装实现。它允许开发者通过 Python 调用 Qt 的功能,构建图形用户界面(GUI)、网络应用、数据库程序等多种类型的软件
1.2 核心特点
-
Qt 库的 Python 绑定:PyQt 将 Qt 的 C++ 接口转换为 Python 模块,使得开发者能够利用 Python的简洁语法调用 Qt 的强大功能。 跨平台支持:支持 Windows、macOS、Linux 等多个操作系统,确保应用程序的广泛兼容性。
-
丰富的组件库:提供大量 UI 控件、图形渲染工具、多媒体支持及数据库连接功能,满足复杂应用开发需求。
-
灵活的授权选项:提供商业版和开源版(PyQt GPL 协议),适用于不同开发场景
2. PyQT5是什么
- PyQt5 是 Riverbank Computing 开发的 GUI 小部件工具包的最新版本。
- 它是 Qt 的 Python 接口,是最强大和流行的跨平台 GUI 库之一。
- PyQt5 是 Python 编程语言和 Qt 库的混合体。 所以说PyQt5就是Python的图形界开发库。
- 程序的用户交互界面,称为UI(User interface)。通过使用PyQt5库,我们可以快速制作自己的小工具。
3.PyQt5的优势
跨平台支持:PyQt5支持Windows、MacOS、Linux、Unix等多种操作系统,编写的代码可以在这些平台上运行而无需修改或只需少量修改。
丰富的组件库:PyQt5提供了大量的GUI组件(如按钮、文本框、表格等)和高级组件(如日历、3D视图等),可以满足各种复杂的界面设计需求。
强大的功能:PyQt5不仅提供GUI组件,还包括网络、数据库、多媒体、Web引擎(QtWebEngine)等模块,使得开发功能丰富的应用程序成为可能。
信号与槽机制:这是Qt的核心机制,用于对象之间的通信。它非常灵活,可以轻松地处理事件和回调,使得代码结构清晰,易于维护。
设计工具支持:Qt Designer是一个可视化的界面设计工具,可以快速设计UI,然后通过PyQt5加载使用,大大提高了开发效率。
文档和社区支持:PyQt5有详细的官方文档,并且由于Qt本身是一个成熟的框架,拥有庞大的社区,遇到问题时容易找到解决方案。
商业许可与开源许可:PyQt5采用双重许可,既有商业许可也有GPL开源许可,可以根据项目需求选择合适的许可方式。
与Python的结合:Python是一种易学易用的语言,PyQt5结合了Python的简洁和Qt的强大功能,使得开发桌面应用更加高效。
可定制性:PyQt5允许开发者通过样式表(QSS)来自定义控件的外观,这使得可以创建具有独特视觉风格的应用程序。
性能:由于Qt是用C++编写的,PyQt5在性能上表现良好,同时又不失Python的灵活性。
国际化支持:PyQt5支持多语言,可以轻松实现应用程序的国际化。
成熟的框架:Qt已经存在多年,经过广泛测试和使用,稳定性和可靠性高。
4.PyQt5的应用领域
- 游戏开发,虽然 PyQT5 主要用于创建用户界面,但它也可以用于游戏开发,尤其是那些注重故事叙述
和角色交互的图形冒险游戏。 - 自动化和控制系统,PyQT5 可以用于创建监控和控制系统,它提供了对信号和槽机制的支持,这有助于
实现复杂的事件处理逻辑。 - 桌面应用程序,它提供了丰富的控件和组件,以及强大的布局管理器,使得开发者可以轻松地创建具有复
杂界面的应用程序。 - 嵌入式开发,PyQT5 可以用于创建定制的硬件设备上的应用程序
5.PySide与PyQt的区别
PySide概述
PySide是Qt框架的官方Python绑定,最初由Nokia开发,现由Qt公司维护。它提供跨平台的图形用户界面(GUI)开发能力,支持Windows、Linux等操作系统。PySide2对应Qt 5,PySide6适配Qt 6。其API与PyQt高度兼容,但采用更宽松的LGPL许可协议。广泛应用于DCC软件(如Maya、Houdini、Blender)的插件开发,底层基于Qt的C++框架实现。
PySide与PyQt的核心差异
许可协议
- PyQt5:提供GPL和商业许可。GPL要求衍生作品开源,商业许可需付费。
- PySide:采用LGPL协议,允许闭源商业应用,仅要求对PySide本身的修改开源。
维护方与背景
- PySide:Qt公司官方维护,属于Qt生态的一部分。
- PyQt5:由Riverbank Computing开发的第三方绑定。
API与兼容性
两者API高度相似,但存在细微差异(如类名、方法名)。直接迁移需少量代码调整。
性能表现
均基于相同的Qt库,性能接近,实际差异取决于具体实现优化。
6. PyQt的安装
6.1步骤
1.首先要确保安装好了python,如果没有安装可以看我主页的文章,前面有写
2.打开终端(也就是win+R键,输入cmd)
输入 pip install PyQt5 == 5.15.2 如果出现了以下这种错误,说明版本不接兼容
可以输入 pip install PyQt5 == 5.15.2
如果下载的很慢的话可以更换国内镜像源
注意:PyQt5支持Python2.x、Python3.5.x-3.9.x的版本,Python3.10及以上版本可能并不兼容PyQt5
pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/
出现以下内容则说明已经安装完成:
安装完成后,你就可以在 Python 中使用 PyQt 来开发桌面应用程序了。在你的代码中,你需要导入
PyQt 模块,例如:(这里只是PyQt5的导入)
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
# 你的代码继续........
PyQt6的导入如下:
from PyQt6.QtWidgets import QApplication, QMainWindow, QPushButton
# 你的代码继续........
注意:如果你需要安装PyQt6可以输入以下内容:
pip install PyQt6
7. PyQt工具的安装
PyQt Tools 是 PyQt 框架提供的一组工具,主要用于辅助 PyQt 应用程序的开发和设计,下载命令如下
(如果下载速度慢,可以添加国内镜像源):
pip install PyQt5-tools==5.15.2.3.1
如果和上面安装PyQt5一样报错了,就输入下面这种:
pip install PyQt5-tools
出现以下输出就代表安装成功:
下面是一些常用工具
1. Qt Designer: 这是一个可视化的用户界面设计器,允许开发者通过拖放方式设计和布局应用程序
的界面。设计好的界面可以保存为.ui 文件,然后可以使用 pyuic 工具将其转换为相应的 Python
代码,以便在 PyQt 应用程序中使用。
2. PyUIC: 这是一个用于将 Qt Designer 设计的 .ui 文件转换为对应的 Python 代码的命令行工具。
通过这个工具,可以将可视化设计的用户界面集成到 PyQt 项目中。
3. PyRCC: 用于将 Qt 资源文件 (.qrc) 编译成 Python 模块的工具。Qt 资源文件可以包含图像、文本
文件等,通过编译可以将这些资源文件嵌入到 PyQt 应用程序中,方便统一管理。
4. Pylupdate: 用于更新 Qt 项目的翻译文件 (.ts)。这在多语言支持的应用程序中很有用,可以提供
不同语言的界面翻译。
8. 工具的导入
8.1 步骤
第一步:打开Pycharm,点击最左边这四条横线
第二步:点击文件里的设置,如果是英文模式就是File里找到Settings
第三步:再设置里找到工具再找到外部工具,点击"+"(因为我这里之前安装好了,所以已经有了)
英文版:选择 External Tools: 在设置窗口左侧的导航栏中,展开 “Tools” 节点,并选择 “External Tools”。
添加外部工具: 在右侧窗格中,点击 “+”(添加)按钮,然后选择 “Program”。
第四步:
填写外部工具信息: 在弹出的对话框中,填写以下信息:
Name(名称): 工具的名称,例如 “pyuic” 或 “Qt Designer”。
Group(组): 可选,可以将工具分组,这样可以更好地组织工具列表。
Description(描述): 工具的描述,用于说明工具的作用。
Program(程序): 工具的可执行文件路径。例如,对于 pyuic,你需要指定它的完整路径,
通常是在虚拟环境中的 Scripts (Windows)或 bin (Linux/Mac)目录中。
Arguments(参数): 传递给工具的参数。对于 pyuic,这可能是一些选项和输入文件的路
径。
Working Directory(工作目录): 工具运行时的工作目录,通常可以设置为你的项目根目录
这里特别注意:工具设置里面的 程序 这一栏目填写的要到你刚刚下载PyQt5的路径里去找
第五步:
我们先输入第一个,要找到designer.exe这个文件的路径
Qt Designer
实参: $FileDir$ (当前文件夹)
工作目录: $ProjectFileDir$ (绝对路径)
第二个:PyUIC
实参: $FileName$ -o $FileNameWithoutExtension$.py (当前文件转为.py文件)
工作目录: $FileDir$
这里程序 是要找到这个 pyuic5.exe文件,也是要到你之前下载Pyqt5的路径里去找
第三个:
PyRcc
实参:$FileName$ -o $FileNameWithoutExtension$_rc.py
工作目录:$FileDir$
三个都安装好之后就如下所示
9. PyQt5 常用模块的介绍
1 QtCore模块
包含了Qt的核心非GUI功能,如事件循环、定时器、线程、文件和文件夹操作、时间和日期等。这个模
块是PyQt5的基础。
2 QtGui模块
包含了Qt的GUI相关功能,如窗口、窗口部件、绘图、颜色、字体、图片等。这个模块提供了创建和管
理用户界面的基本工具。
3 QtWidgets模块
是PyQt5中最常用和最重要的模块,提供了一系列用户界面控件,如按钮、文本框、标签、表格、菜
单、滚动条等。开发者可以利用这些控件快速构建用户界面。
4 QtMultimedia模块
用于处理多媒体相关的功能,如音频、视频、摄像头等。这个模块提供了访问和处理多媒体资源的接
口。
5 QtNetwork模块
用于处理网络通信相关的功能,如TCP/IP、UDP、HTTP等。这个模块提供了与网络相关的类和方法,方
便开发者进行网络编程。
6 QtSql模块
用于数据库操作,支持多种数据库系统,如SQLite、MySQL、Oracle等。这个模块提供了访问和操作数
据库的功能。
7 QtWebEngine模块
用于在应用程序中嵌入Web内容,如网页浏览器、HTML5应用等。
8 QtWebEngineWidgets模块
提供了WebEngine模块的Qt Widgets集成,用于在Qt应用程序中显示和控制Web内容
总结
通过本文的介绍,我们了解了 PyQt 的基本概念、核心特点及其在桌面应用开发中的广泛应用。从 PyQt5 的安装配置到常用工具(如 Qt Designer、PyUIC 等)的使用,逐步掌握了开发环境的搭建与基本操作。PyQt 不仅功能强大、支持跨平台,还具备丰富的组件和灵活的定制能力,非常适合用于开发各类图形界面程序。希望本文能为您的 PyQt 学习与实践提供有益的帮助。