一、qrc文件整合资源
程序所使用的资源文件(图片,音频和qss等)如果直接打包不会和程序代码一起打包到exe可执行文件中去,也就是说之后exe文件在哪,必须同路径下有资源文件,这时候为了让资源文件和程序代码一同打包成exe文件,需要用到qrc文件
1、首先在项目中创建一个res.qrc,输入
<RCC>
<qresource prefix="res/">
<file alias="图片名称.png">res/图片名称.png</file>
<file alias="音频名称.wav">res/音频名称.wav</file>
<file alias="style.qss">res/style.qss</file>
</qresource>
</RCC>
prefix就是资源文件的前缀,在代码中我们写的是res/。<file>
标签中内容写的就是资源文件的路径,alias属性写的是资源文件名。一个** 标签对应一个资源文件。
2、在命令行窗口用pyrcc5工具将其转换为py文件(pyrcc5包含在PyQt5中)
命令行格式:pyrcc5 源文件 -o 输出文件
接着我们就会发现项目目录下多了一个res.py文件
3、最后一步在代码中国导入我们刚刚得到的res.py文件,并在响应的路径前加上一个“:”
(加上:表示从res.py中获取资源而不是在res文件夹下)
增加修改如
import res
self.setWindowIcon(QIcon(':res/图片名称.png'))
self.btn_sound(':res/音频名称.wav'))
qss_style = read_qss(':res/style.css')
创建qic文件应在程序开始写时就创建,每当有新文件资源时直接添加到qrc中)
二、用PyInstaller打包
1、下载pyinstaller
pip install pyinstaller
参数 | 用处 |
---|---|
-F | 将程序打包成一个文件 |
-w | 去除黑框 |
-i | 添加程序桌面图标,后面直接跟ico格式的图标路径 |
在项目路径下输入以下命令
pyinstaller -F -w -i ./res/ico名称.ico 文件.py
在项目目录下生成dist和buildd文件夹以及一个.spec文件,我们需要的exe文件就在dist文件夹下
双击.exe文件,若显示程序界面说明打包成功
如果出现以下弹框,则把打包命令中的-w 去掉再打包一次。这样打包完后会出现黑框,黑框中有错误提示信息,把错误提示信息解决就可以。
错误信息解决可以去该链接进行查询
Pyinstaller打包问题之解决方案汇总: https://blog.csdn.net/La_vie_est_belle/article/details/82260339