2022年 11月 16日

Python3.x 使用 PyQt5 设计界面并打包成 Windows 应用程序


一、安装运行环境

    Anaconda (这里包含了Qt Designer、PyUIC5、PyRCC5)

    PyCharm  (激活)

    Pyinstaller (pip install pyinstaller 或者 pip3 install pyinstaller)

    PyQt5  (pip install pyqt5 或者 pip3 install pyqt5)

    Qt Designer:Qt设计师,设计界面

    PyUIC5:设计的界面转换成 xxx.py

    PyRCC5:资源文件转换成 xxx.py

    Pyinstaller:打包 xxx.py 为 xxx.exe

二、设置PyCharm

    File–>Setting–>External Tools–>+(添加)

    Name:QtDesigner

    Program:D:\ProgramData\Anaconda3\Library\bin\designer.exe (Anaconda安装目录)

    Working  directory:$FileDir$

    

    再次添加

    Name:PyUIC

    Program:D:\ProgramData\Anaconda3\Library\bin\pyuic5.bat (Anaconda安装目录)

    Argument:$FileName$ -o $FileNameWithoutExtension$.py

    Working  directory:$FileDir$

    

    再次添加

    Name:PyRcc

    Program:D:\ProgramData\Anaconda3\Library\bin\pyrcc5.bat (Anaconda安装目录)

    Argument:$FileName$ -o $FileNameWithoutExtension$_rc.py

    Working  directory:$FileDir$

    

    最终

    

三、打开Qt Designer

    PyCharm–>Tools–>External Tools–>QtDesigner


创建一个窗体

设计一个窗体,用于演示

将设计好的窗体另存为Login.ui并保存到工程目录,PyCharm–>Login.ui–>右键–>External Tools–>PyUIC

会在当前目录下生成一个Login.py的文件

新建一个 main.py 文件,将以下代码写入其中

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. '''
  4. 登陆窗口
  5. '''
  6. __author__ = 'YXQ'
  7. import sys
  8. import Login
  9. from PyQt5.QtWidgets import QApplication, QMainWindow
  10. if __name__ == "__main__":
  11. app = QApplication(sys.argv)
  12. mainWindow = QMainWindow()
  13. ui = Login.Ui_MainWindow()
  14. ui.setupUi(mainWindow)
  15. mainWindow.show()
  16. sys.exit(app.exec_())

运行 main.py 

四、打包成可执行文件 exe

    PyCharm–>Show in Explorer 打开文件所在目录

在文件夹空白处按住 Shift–>鼠标右键–>在此处打开命令窗口

输入 pyinstaller -F -w main.py

找到同目录下的 dist–>main.exe 运行看一下结果

五、完结

    附 pyinstaller 参数

  • -F , -onefile: 指明该选项,将会生成一个总的exe文件,所有的文件都会被添加到这一个中。

  • -D, -onedir: 产生一个目录来盛装用于分发的exe文件,也比较方便。

  • -K, -tk: 在部署的时候,包含TCL/TK,这对于有图形界面的python文件比较的适用。

  • -a, -ascii: 不包含编码,因为在支持Unicode的Python版本上默认包含所有的编码,这个选项基本上不怎么用得到。

  • -d, -debug: 产生Debug版本的可执行文件。

  • -w, -windowed, -noconsole: 适用Windows子系统执行,当exe文件运行的时候,不会出现命令行CMD窗口。(因为是windows子系统,所以只在windows平台下有效。)

  • -c, -nowindowed, -console: 与上相反,出现CMD窗口,辅助用户操作。

  • -s, -strip: 这个参考别人的话为“可执行文件和共享库将run through strip,注意Cygwin的strip往往使得普通的win32DLL无法使用”。

  • -X, -upx: 压缩方式,如果有UPX安装,则会压缩源文件来执行。

  • -o DIR, -out=DIR: 指定DIR作为exe的生成目录,如果未指定,默认为pyinstaller的解压目录,且会根据python文件创建出同名的目录来保存生成的exe文件。

  • -p, DIR, -path=DIR: 设置导入的环境变量路径,windows下英文的分号分隔,也可以使用多个-p选项来设置导入多个路径(其实这个选项有点鸡肋,分发版的话基本上不怎么用得到)。

  • -icon=<FILE.ICO>: 将file.ico添加为exe文件的图标(可以自定义,注意为ico文件,否则格式不正确的话会出错的)。

  • -icon = <FILE.EXE, N>: 原理同上(只是把file.exe文件的第N个图标作为资源来使用,不怎么用得到)。