Python桌面应用开发 ——— PyQT5
PyQT5简介
PyQt是Qt框架的Python语言实现,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。
PyQt5提供GPL版和商业版证书,自由开发者可以使用免费的GPL许可,如果需要将PyQt用于商业应用,则必须购买商业许可。
PyQt5的特性
PyQt5特性如下:
(1)基于高性能的Qt的GUI控件集。
(2)能够跨平台运行在Linux、Window和Mac OS系统上。
(3)使用信号槽机制进行通信。
(4)对Qt库进行完全封装。
(5)可以使用成熟的IDE进行界面设计,并自动生成可执行的Python代码。
(6)提供一整套种类齐全的窗口控件。
PyQt5模块
PyQt5是由一系列Python模块组成,有超过620个类,6000个函数和方法,主要模块如下:
(1)QtCore包含核心的非GUI的功能。主要与时间、文件、文件夹、各种数据、流、URLs、mime类文件、进程、线程一起使用。
(2)QtGui包含窗口系统、事件处理、2D图像、基本绘画、字体和文字类。QtWidgets类包含一系列创建桌面应用的UI元素。
(3)QtMultimedia包含处理多媒体和调用摄像头API的类。
(4)QtBluetooth模块包含查找和连接蓝牙的类。
(5)QtNetwork包含网络编程的类,能让TCP/IP和UDP开发变得更加方便和可靠。
(6)QtPositioning包含定位的类,可以使用卫星、WiFi甚至文本。
(7)Engine包含通过客户端进入和管理Qt Cloud的类。
(8)QtWebSockets包含WebSocket协议的类。
(9)QtWebKit包含一个基WebKit2的web浏览器。
(10)QtWebKitWidgets包含基于QtWidgets的WebKit1类。
(11)QtXml包含处理xml的类,提供SAX和DOM API的工具。
(12)QtSvg提供显示SVG内容的类,Scalable Vector Graphics(SVG)是一种是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。
(13)QtSql提供处理数据库的工具。
(14)QtTest提供测试PyQt5应用的工具。
PyCharm中安装配置PyQt5的所有工具包
Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合。
本节介绍PyCharm中如何完整优雅地安装配置PyQt5的所有工具包,主要内容包括PyQt5、PyQt5-tools的依赖包安装和Qt Designer、PyUIC、PyRcc三个工具的设置。
- PyQt5:PyQt5是一套Python绑定Digia QT5应用的框架。Qt库是最强大的GUI库之一,PyQt5作为Python的一个模块,它有620多个类和6000个函数和方法。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,Mac OS。(PyQt5是双重许可)
- PyQt5-tools:PyQt5中没有提供常用的Qt工具,比如图形界面开发工具Qt Designer,PyQt5-tools中包含了一系列常用工具。
- Qt Designer:可以通过Qt Designer来编写UI界面,Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。Qt Designer随PyQt5-tools包一起安装,其安装路径在 “Python安装路径\Lib\site-packages\pyqt5-tools”下。
- PyUIC:Qt Designer生成的.ui文件(实质上是XML格式的文件)可以通过pyuic5工具转换成.py文件。
- PyRcc:在使用PyQt开发界面时,在Qt Designer中使用的图片等资源需要将其编译为py文件,这时需要用到PyRcc工具方便地将qrc文件转换为py文件。
对于一个新创建的Python环境,首先需要安装PyQt的相关工具包,因为是Python的依赖包所有可以通过pip进行安装,由于我们在PyCharm中进行程序设计,这里我们可以通过PyCharm中的环境管理界面进行安装。对于新建的项目test,其文件界面如下图所示:
(1)因为最新的PyQt5-tools最高目前只支持到Python3.9,所以在使用PyCharm(PyCharm 2022.2.1 (Community Edition))创建项目时,必须选择Python3.8作为开发环境
请注意Python的版本,该库目前最终只支持到python3.9。
我这里又安装了3.8.0:https://www.python.org/downloads/release/python-380/ 选择下面的Windows x86-64。
(2)File -> Settings -> Project:项目名 -> Python Interpreter
点击可看到当前已安装的环境和依赖包
pyqt5
可以看出当前尚未安装pyqt5的依赖包,点击“加号”按钮弹出安装界面如下图所示,在搜索框输入“PyQt5”可以搜索到对应的依赖包,点击“Install Package”按钮进行安装(绿色框处可选择安装版本),等待安装完成:
PyQt5-tools
同样地安装PyQt5-tools工具包(pyqt5-tools 官方库),在搜索框中输入“PyQt5-tools”,选中要安装的依赖包,点击“Install Package”进行安装。
至此PyQt的工具包安装完成,在编辑器或命令行可以通过“import PyQt5”调用该库。这里确定一下安装位置,正常情况下这两个包的安装位置在Python的安装目录下的“\Lib\site-packages\”目录,如我这里的两个安装位置如下图所示(我这里Python为虚拟环境,安装位置在“D:\pydemo\test”):
环境变量配置
(1)安装完成后,为了保证在PyCharm中方便使用,我们还需要将PyQt5-tools的安装目录添加到系统环境变量Path中。
(2)
在环境变量界面中点击“新建”,在系统环境变量中新建名为“QT_PLUGIN_PATH”的变量,该变量值为Qt插件的安装位置,可通过“浏览目录”依次找到“plugins”文件夹,通常其位置在“Python安装路径\Lib\site-packages\PyQt5\Qt5\plugins\”位置(需根据实际情况修改)
Qt Designer
点击菜单栏“File”,弹出下拉框,选择“Setting”,弹出设置界面。在设置界面中选择“Tools”→“External Tools”,该部分操作如下图所示: