一、Qt
Qt是一个跨平台的C++开发库,主要用来开发图形用户界面(GUI)程序。Qt 是纯 C++ 开发的,正常情况下需要先学习C语言、然后在学习C++然后才能使用Qt开发带界面的程序。
多亏了开源社区使得Qt 还可以用Python、Ruby、Perl 等脚本语言进行开发。
Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix,Android、ios,嵌入式系统等等,是跨平台的。
QT官网:https://doc.qt.io/qt-5/index.html
二、PyQt
-
PyQt的开发者是英国的“Riverbank Computing”公司。它提供了GPL(简单的说,以GPL协议发布到网上的素材,你可以使用,也可以更改,但是经过你更改然后再次发布的素材必须也遵守GPL协议,主要要求是必须开源,而且不能删减原作者的声明信息等)与商业协议两种授权方式,因此它可以免费地用于自由软件的开发。
-
PyQt可以运行于Microsoft Windows、Mac OS X、Linux以及Unix上。
-
PyQt是Python语言的GUI(又称图形用户接口)编程解决方案之一。可以用来代替Python内置的Tkinter。其它替代者还有PyGTK、wxPython等,与Qt一样,PyQt是一个自由软件。
-
简单的说:
Qt (C++ 语言 GUI )
PyQt = Python + Qt技术 -
参考资料1:https://www.riverbankcomputing.com/software/pyqt/
参考资料2:https://wiki.python.org/moin/PyQt/Tutorials
三、Python GUI开发热门选择
-
Tkinter
Python官方采用的标准库,是Tcl/Tk语言在Python上的接口,可以在大部分操作系统上运行。优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。 -
wxPython
基于wxWidgets的Python库,具有非常优秀的跨平台能力。优点是控件比较丰富,缺点是稳定性相对差点、文档少、用户少。 -
PySide2、PyQt5
PySide2是一个Python模块,它提供了对Qt5.12+完整框架的访问,简单说就是在Python下使用的Qt。使用PySide2既能开发出完美的界面,又能享受Python的便捷开发。与PySide和PyQt相比,PySide2是开源的,使用不受限制;与Qt的C++相比,使用PySide2能大大减少代码量。使用PySide2需要有一定的Python基础以及一些Qt的基础。PySide2就是Qt由C++语言换成了Python语言,这样要了解PySide2某个模块的用法,Qt的说明书就是最好的帮助文档。
优点是控件比较丰富、跨平台体验好、文档完善、用户多。 缺点是库比较大,发布出来的程序比较大。
PyQt5与PySide2类似,在业内用PyQt相对较多。
三、PyQt5的下载安装
下面我们以在Python虚拟环境中,使用pip进行安装PyQt
1. 创建、激活新的虚拟环境
使用虚拟环境的目的是让每个项目都有独立的环境,每一个项目使用自己需要的库,不会有冲突和冗余,为了之后打包项目为exe文件做准备。
①安装 virtualenv
pip install virtualenv
②新建虚拟环境python-qt
③激活虚拟环境python-qt
进入虚拟环境
cd python-qt
进入脚本目录 Scripts
cd Scripts
运行activate.bat
activate.bat
如有(python-qt)标识,说明激活成功。
如果退出,执行
deactivate.bat
2. 安装pyqt5(命令行)
在指定的虚拟环境安装pyqt5
pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果安装缓慢,可以尝试修改pip加速,加速地址如下
阿里云 https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) https://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/
安装成功验证:
命令行输入
pip list
安装Qt-Designer
pip install pyqt5-tools
安装成功如图:
3.前期配置与输出文件
需要在external tools中扩展出的Designer和转换文件PyUIC
- Designer
Designer是用来构建文件的,构建出来的文件是xxx.ui文件在通过PyUIC去转换成xxx.py文件。 - PyUIC
将xxx.ui文件转换成xxx.py文件。 - PyRcc
将资源文件转换成py文件,并在主程序引入。
3.1.打开pycharm
Settings-拓展工具
3.2 配置QtDesigner
Scripts的文件中包含designer.exe的程序
需要填写的参数:
①program的路径
也就是可运行的designer.exe程序
E:\python\PyCharm Community Edition 2020.2\python-qt\Lib\site-packages\qt5_applications\Qt\bin\designer.exe (具体看自己的位置)
②working directory的目录
$ProjectFileDir$
3.3 配置外部工具PyUIC
Scripts的文件中包含pyuic5.exe的程序
需要填写的参数
①program
也就是可运行的pyuic5.exe文件
②arguments
因为需要将xxx.ui文件转变成xxx.py文件
$FileName$ -o $FileNameWithoutExtension$.py
③working directory
$ProjectFileDir$
3.4 配置外部工具PyRcc
Scripts的文件中包含pyrcc.exe的程序
需要填写的参数
①program
也就是可运行的pyrcc5.exe文件
②arguments
$FileName$ -o $FileNameWithoutExtension$_rc.py
③working directory
$FileDir$
结果类似上图。
如果使用,在tools里:
4. 导入虚拟环境,应用PyQt5
因为前期把pyqt5相关资源安装在了虚拟环境中,所以要在项目里使用的话,要配置虚拟环境。
找到设置->python interpreter->show all->扩展环境选择之前配置的虚拟环境目录下的python.exe,如下图。
成功导入
在项目代码编写中,引入也不报错。