Python+PyQt5+QtDesigner+PyUic+PyRcc:
首先来了解一下这个工具的作用:
python,的作用我就不用说了。—— 它是一门编程语言!
PyQt5,用了它之后敲python代码就能能够进行UI设计;
QtDesigner,也是用来做UI的,只不过是直接通过Qt语言来进行UI设计的,同时,还支持拖拽式的UI设计。
PyUic,就是一个用来将QtDesigner代码转化成Python代码的;
最后PyRcc,就是将图片、数据文件资源打包成py文件的。QtDesigner中管理资源文件(图片、数据文件)是通过.qrc文件来管理的。pyQt生成的应用程序,引用图片通常是将资源文件装换为 python 文件,然后引用资源文件,而不能直接加载资源文件。而pyrcc就是将.qrc文件转化成.py文件的。
那么要用PyQt5开发窗体应用,前期的开发环境配置肯定少不了:
PyQt :pip install PyQt5
QtDesigner:pip install PyQt5-tools
在pycharm里配置
(1)打开PyCharm,File—>Settings—>External Tools
(2)点击加号来添加自己的工具
配置QtDesigner
(3)做如下配置:
Name:QtDesigner
Group:Qt
Programs:F:\anaconda\Library\bin\designer.exe( 这里是我的python安装目录,这个得替换成自己的安装目录哈,以下同理 )
Working directory:$ProjectFileDir$
在这里很多小伙伴,肯定说找不到 designer.exe的路径,那么重点来了 。在上面我说过Designer是在PyQt5-tools里面的
所以,现在CMD中 where python 一下查看python的安装位置:比如我的安装目录如下:
此时我的designer.exe就安装在这个位置了,一般是在python的安装的文件路径下的: ~~\python3\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
另外需要注意:如果你双击designer.exe 可能会出现这种问题,这说明缺少VCRUNTIME140_1.dll的文件,所以你要去c盘里搜索一下这个dll文件,将其复制到designer.exe 所在的目录下面就可以完美解决了。如果本地找不到,那就去网上下载一下这个缺失的文件,很小的。一般情况C盘的系统文件中,会存在VCRUNTIME140_1.dll文件。
如果加入进去VCRUNTIME140_1.dll文件之后,还是出现错去,说no plugins 则将designer.exe上一级目录中的plugins文件夹复制到 designer.exe所在的路径下。
这下就能直接打开了。ok!完美!
完成后点“OK”,现在QtDesigner配置好了,可以直接在PyCharm中打开它来画界面了。但是要在PyCharm中把界面的.ui文件转换为.py文件还需要后面的配置。
配置Pyuic
(4)同样在External Tools中点击加号来配置pyuic:
Name:Pyuic
Group:Qt
Program:F:\python3\Scripts\pyuic5.exe(各位自己的python路径)
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Working directory:$FileDir$
同样我的路径如下:python路径下的Scipts文件夹
配置Pyrcc
(5)同样在External Tools中点击加号来配置pyrcc:
Name:Pyrcc
Group:Qt
Program:C:\Users\xue86\AppData\Local\Programs\Python\Python37-32\Scripts\pyrcc5.exe (各位自己的pyrcc5路径)
Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory:$FileDir$
配置完成之后,就可以在pycharm 中看到这几个工具了 !
另外记录一下:前后端的彻底分离开发:
我们在用Designer设计完ui界面之后,往往是使用pyuic将 .ui 文件转成了.py格式的文件 但是转成的.py文件往往内容很冗长
不利于前后端彻底分离,那么可以直接在.py文件中加载.ui文件
UI程序--与--逻辑程序分离:
from PyQt5.uic import loadUiType
ui, _ = loadUiTpe("main.ui") # 动态加载进来main.ui文件
class MainApp(QMainWindow,ui): # 业务逻辑程序
#定义构造方法
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
pyqt5基础的使用教程:https://www.cnblogs.com/lsdb/p/9122425.html