1. PyQt介绍

  Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。PyQt是一个创建GUI应用程序的工具包,是Python编程语言与Qt库的成功融合。

2. Python的安装

  由于PyQt是Python的一个库,安装它之前,需要先安装好Python解释器,目前已经更新到Python3.11了。一般习惯性安装Python3的任一版本就可以了。这里简单介绍Python安装好后需要配置环境变量。本文用的Pycharm软件编写Python程序。配置要求如下:

解释器所在的路径:在Path环境变量中配置python解释器(python.exe)所在的目录,如下图:

在Path中添加D:\software\python37;

pyqt 大项目架构 pyqt框架_Qt

在Path环境变量中配置pip.exe所在目录:在Path中添加D:\software\python37\Scripts;

pyqt 大项目架构 pyqt框架_python_02

3.  PyQt的安装

  这里安装PyQt5。在cmd窗口中输入下面命令进行快速安装(后面网址为国内豆瓣的镜像源)

  pip install PyQt5 -i https://pypi.douban.com/simple

  安装好后,在安装目录(一般是site-packages)有如下:

pyqt 大项目架构 pyqt框架_Python_03

  至此,我们可以写GUI程序了,如下:

pyqt 大项目架构 pyqt框架_Python_04

4.  安装PyQt5-tools

  PyQt5 不再提供常用Qt工具,比如图形界面开发工具Qt Designer、国际化翻译工具Liguist 如果开发中使用到这些,必须自行安装Qt工具。使用国内镜像安装。

  pip install PyQt5-tools -i https://pypi.douban.com/simple

pyqt 大项目架构 pyqt框架_Qt_05

  安装好后(如果遇到click版本问题,看博客最后面解决方法),会在site-packages中新增如下:

pyqt 大项目架构 pyqt框架_Python_06

  安装它是为了配置QtDesigner。后面介绍配置QtDesigner 、PyUIC、PyRcc及其作用。

5.  QtDesigner的配置

  配置QtDesigner后,用户可以拖拽GUI组件生成UI文件。

 

pyqt 大项目架构 pyqt框架_Qt_07

 

pyqt 大项目架构 pyqt框架_pyqt 大项目架构_08

  在弹出窗口中分别配置如下:

pyqt 大项目架构 pyqt框架_pyqt 大项目架构_09

  Program的配置:

  D:\software\python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe

  Arguments空着

  Working directory的配置:

  $ProjectFileDir$

  配置好后,可以在如下路径打开QtDesigner

pyqt 大项目架构 pyqt框架_Python_10

pyqt 大项目架构 pyqt框架_Python_11

6. PyUIC的配置

  PyUIC是干嘛的呢?它是用来将前面QtDesigner生成的UI文件转换成后缀名为py文件使用的。配置与前面差不多,三个参数配置如下(我也是参考网上的配置的):

  Program的配置:D:\software\python37\python.exe

  Arguments的配置:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

  Working directory的配置:$FileDir$

pyqt 大项目架构 pyqt框架_Python_12

  点击OK就不用说了。现在测试一下(自己拖拽组件进去,然后记得保存ctrl+s):

pyqt 大项目架构 pyqt框架_Python_13

  再回到工程目录,发现多了一个后缀名为ui的文件.ui 文件里面包含的内容是按照XML(可扩展标记语言)格式处理的。

pyqt 大项目架构 pyqt框架_pyqt 大项目架构_14

  在mainWindow.ui文件上右键,选择External Tools---->PyUIC。

pyqt 大项目架构 pyqt框架_Qt_15

  然后会生成py文件。

pyqt 大项目架构 pyqt框架_Python_16

  再创建一个test测试显示刚才的界面。

pyqt 大项目架构 pyqt框架_Qt_17

  图中代码如下:

import sys
from PyQt5.QtWidgets import QApplication , QMainWindow
import mainWindow
if __name__ == '__main__':
    app = QApplication(sys.argv)
    main= QMainWindow()
    ui = mainWindow.Ui_MainWindow()
    ui.setupUi(main)
    main.show()
    sys.exit(app.exec_())

至此,感觉弄完了,但是PyRcc还没配置,是干什么用的呢?当我们需要网QtDesigner配置的界面中引入图片资源时用到。具体请往下看。

7. PyRcc的配置

pyqt 大项目架构 pyqt框架_Qt_18

  三个参数如下:

  Program的配置:C:\Users\Admin\AppData\Local\Programs\Python\Python39\Scripts\pyrcc5.exe

  Arguments的配置:$FileName$ -o $FileNameWithoutExtension$_rc.py

  Working directory的配置:$FileDir$

  我在工程目录加了一个文件夹,专门用来放图片的。

pyqt 大项目架构 pyqt框架_Qt_19

  再次来到这个地方,看右下角,点击铅笔(编辑资源),后面的部分有点懵,琢磨了好久,一直不明白意思。

pyqt 大项目架构 pyqt框架_Python_20

  左边点击新建资源文件,并命名。

pyqt 大项目架构 pyqt框架_Qt_21

pyqt 大项目架构 pyqt框架_pyqt 大项目架构_22

  然后点击如图所示图标,新建images。

pyqt 大项目架构 pyqt框架_Qt_23

  在点击中间的图标,添加图片文件。

pyqt 大项目架构 pyqt框架_python_24

 

pyqt 大项目架构 pyqt框架_pyqt 大项目架构_25

  此时资源浏览器有如下:

pyqt 大项目架构 pyqt框架_Qt_26

  在button的icon右边选择资源图片。

pyqt 大项目架构 pyqt框架_Qt_27

 

pyqt 大项目架构 pyqt框架_pyqt 大项目架构_28

  生成了qrc资源文件。

 

pyqt 大项目架构 pyqt框架_Qt_29

  右键点击External Tools,然后点击PyRcc。

pyqt 大项目架构 pyqt框架_Qt_30

  然后再次运行程序,Button含有图片了(记得先将UI生成py文件,然后qrc转py文件)。

pyqt 大项目架构 pyqt框架_python_31

8. 遇到的报错问题

  安装PyQt5-tools时

pyqt 大项目架构 pyqt框架_pyqt 大项目架构_32

  删除click8.1.3这个版本。安装指定的click版本

  pip install click==7.0 -i https://pypi.douban.com/simple

 

 

  以上若存在不足之处,欢迎评论与指正,若有用,请点个赞!

 

 

参考资料:

https://zhuanlan.zhihu.com/p/162866700