这并不是一篇小白指导帖,这只是一篇踩坑帖,所以一切的一切都不是从一台刚安装好windows10系统的电脑开始的。
需要安装好PyCharm,最好配置好Anaconda(需不需要配置Anaconda我也不清楚,只不过像Anaconda这种神器,一般都是先配置好,再去装别的玩意儿),如何安装敬请自行查找,本文不提供解释。
PyQt5基本上是算是Python用来写设备端UI最好的利器了吧?(这句话涉及“好”与“不好”,太主观,因此只是个疑问,不严谨,但是在我不宽的视野里确实就是这么认为的)。
Qt的跨平台属性,加上Python方便快捷的上手属性,这二者结合可以给一些不太想折腾C++的童鞋,以及给一些想折腾C++但是想先找个便利的路线切入的童鞋,提供一条不错的路径。(全行业WEB化的今天,Qt也算是端UI硕果仅存的存在了吧,顺便提示下,搞工业应用的童鞋,抓紧5G还没有全面普及的时候多用用端UI开发,不然可能后面就全场景WEB化了)
Q1: 安装PyQt需要先安装Qt环境包吗?
A1: 不需要
Q2: 安装PyQt实际上需要安装什么?
A2: 实际上需要安装PyQt5和pyqt5-tools两个工具
Q3: 安装PyQt采用什么方法?
A3: cmd下直接用pip install的方法
windows + R 打开cmd
输入pip install PyQt5 -i https://pypi.douban.com
(豆瓣资源)
或pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
(清华大学资源)
此处也可以直接pip install PyQt5
,只要网速过得去就行
判断是否成功标志:安装正常无报错地完成?成功 : 失败(相当不严谨的判断方法)
注意:国内源使用的时候可通会报错,多试几次
windows + R 打开cmd
输入pip install pyqt5-tools -i https://pypi.douban.com
(豆瓣资源)
或pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
(清华大学资源)
此处也可以直接pip install pyqt5-tools
,只要网速过得去就行
判断是否成功标志:安装正常无报错地完成?成功 : 失败(相当不严谨的判断方法)
注意:国内源使用的时候可通会报错,多试几次
安装好以后需要对安装好的两个包进行环境变量配置:
“此电脑”右键 --> 属性 --> 高级系统设置 --> 环境变量
注意:此处要选系统变量里的Path变量进行添加,不是对某用户变量进行修改。
接下来划重点,涉及到一个路径:
这个路径其实和你安装anaconda的位置有关,在anaconda文件夹下的Lib文件夹下,再去找site-packages,如果找得到PyQt5的相关文件,也佐证了上两步安装是成功的.
cmd中进入python环境,输入
import sys
from PyQt5 import QtWidgets, QtCore
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
widget.resize(400,360)
widget.setWindowTitle("Hello, pyqt5!")
widget.show()
sys.exit(app.exec_())
如果无报错地得到这样一个窗口,那么恭喜你可以无坑进入下一步了
接下来描述一下如何在PyCharm下配置PyQt5:
我们新建一个项目,使用自己的python环境
先查看一下是否可以进行配置(此处有坑,第3节再讲)
Files --> Settings --> Project: XXXX --> Project Interpreter
如果能查看到红框中出现的包,则按下述方式继续配置
其实主要就是配置两个工具:Designer和UIC
其中, Designer提供一个可视化可拖拽的前端编辑IDE
UIC将这个IDE文件转回成代码
具体配置过程如下:
新建一个tool:
Files --> Settings --> Tools --> External Tools
命名随意,此处我命名为QtDesigner
填入调用程序地址:C:\Anaconda3\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
(如果是5.15及以上版本,则需要注意,PyQt更新了文件夹结构,使用C:\Anaconda3\Scripts\pyqt5designer.exe
来替代了designer.exe,也有另外的版本位置在C:\Anaconda3\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
特此说明)
这个地址要到anaconda安装路径下的Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
填入工作路径:$FileDir$
命名随意,此处我命名为PyUIC
填入调用程序地址:C:\Anaconda3\Scripts\pyuic5.exe
填入参数:$FileName$ -o $FileNameWithoutExtension$.py
填入工作路径:$FileDir$
在新建的环境中,Tools --> External tools --> QtDesigner
如图所示,在Designer中绘制一个窗口:注意它是一个MainWindow类型的窗口,其中的其他部件(如按钮,菜单栏,文字框等可随意添加)
将界面设计文件保存成test.ui文件,然后在项目管理器中找到该文件,右键选择External tools --> PyUIC,将*.ui文件转换成*.py文件
打开生成的test.py文件,但是暂时它还无法运行,需要向其中添加一些内容:
import sys
from PyQt5.QtWidget import QApplication, QMainWindow
# XXXXXXXX
# XXXXXXXX
# XXXXXXXX(直接转换得到的源码)
# 测试时需要用的运行代码
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
添加完代码后可以直接运行这个test.py文件,得到如下内容
问题描述:2.2.4节遗留了一个问题,如果import PyQt5报错,该如何是好?
这个问题产生的原因很好解释,由于之前一顿猛如虎的安装操作,只是针对系统默认的python来完成的,可是偏偏Anaconda过于强大,可能是为你生成了一个独立的虚拟环境来执行代码的。所以你那一顿猛如虎的安装操作并没有影响到这个虚拟环境本身的python。
知道了问题发生的原因,那解决起来也就方便很多了。具体来说途径有二:
这个问题发生的原因也挺复杂(其实就是我没搞清楚原因是啥,从解决的方式来看,可能是因为先装的PyQt5包和后安装的pyqt5-tools包的某些platform配置文件不一致)
但是好在有解决的方法:
找到PyQt5包的安装位置,找到pyqt5-tools的安装位置。
用PyQt5包中的C:\Anaconda3\Lib\site-packages\PyQt5\Qt\plugins\platforms
文件夹去替换pyqt5-tools包中的文件夹C:\Anaconda3\Lib\site-packages\pyqt5_tools\Qt\bin\platforms
没啥结语,我也才刚刚安装完成,更多的坑还在后面,使用过程中会不会出坑,到时候再做补充吧。在此也补充一下PyQt的官网,如果有什么进一步的问题,建议去官网进行研究解决,可能解决得会更完善一些。
另外本文鸣谢各位大神前辈的探索和无私分享,踩坑的过程也综合来自于多位博主的精彩文章。也希望如果本文能对正在阅读的你提供一些帮助,欢迎转载扩散。
[1] https://blog.csdn.net/zhangziju/article/details/80243858
[2] https://blog.csdn.net/py_xiaoguaishou/article/details/83006838
[3] https://www.cnblogs.com/focksor/p/13166970.html
[4] https://blog.csdn.net/zyngoo/article/details/85880572
[5] https://blog.csdn.net/zjm12343/article/details/79707275
[6] https://www.cnblogs.com/liuhedong/p/11545568.html