win版本PyQT5 在打包过程中将ico图标添加上

win版本PyQT5 在打包过程中将ico图标添加上

我们将做好的PyQT的ui页面和功能制作完毕后肯定需要将可执行的文件进行打包,那要怎么做?
根据我在网上查询的比较能成功的方法分享一下:

1、首先

需要创建一个文件(.qrc),我这里就先举例一下(我创建一下images.qrc)
在这里插入图片描述
在文件中添加:

<RCC>
    <qresource prefix="/">
        <file>绿蝴蝶.ico</file> 
     </qresource>
</RCC>

这里面输入你ico文件!

2、其次将.qrc文件转化为python文件

pyrcc5 images.qrc -o images.py.  

运用pyrcc5将你的qrc文件转为py文件

转为结果:
在这里插入图片描述

3、将转换好的py代码导入到主程序中

网上说:将你转化好的这个py代码导入到可执行的文件中
如图;
在这里插入图片描述
可是我感觉我没有用到,以防万一就导入也没关系!

后面开始修改代码!
在主程序中将你的主窗口设置一下你的图片路径!如图:
在这里插入图片描述

4、开始打包

打包命令:

pyinstaller -F -w --icon=118.ico xxxxx.py   #icon是你ioc图片,xxx.py为是你的可执行的py文件

都要写对否则打包不起来!
我这边的pyinstaller的版本是4.5.1、PyQT是5.15.1的

打包完之后一共有三个文件
在这里插入图片描述

5、将那个转化好的py文件放入打包完成之后的dist中!

在这里插入图片描述
这时候里面打包好的exe文件就有图标了!
在这里插入图片描述

### 如何在使用 PyQt5 打包应用程序时将 .ico 文件包含最终的可执行文件中 为了确保 `.ico` 文件能够正确地嵌入到最终生成的可执行文件中,以下是一个完整的解决方案: #### 1. 创建资源文件(`.qrc`) 首先需要创建一个资源文件(例如 `images.qrc`),用于存储 `.ico` 图标文件。以下是该文件的示例内容: ```xml <RCC> <qresource prefix="/"> <file>绿蝴蝶.ico</file> </qresource> </RCC> ``` 此文件定义了图标文件的路径和前缀[^1]。 #### 2. 转换资源文件Python 文件 使用 `pyrcc5` 工具将 `.qrc` 文件转换为 Python 文件(例如 `images.py`)。命令如下: ```bash pyrcc5 images.qrc -o images.py ``` 这一步会生成一个 Python 文件,其中包含了资源文件的二制数据[^1]。 #### 3. 导入资源文件到主程序 将生成的 Python 文件(如 `images.py`)导入到主程序中,并设置窗口的图标路径。例如,在主程序中添加以下代码: ```python from PyQt5.QtWidgets import QApplication, QMainWindow import images # 导入生成的资源文件 app = QApplication([]) window = QMainWindow() window.setWindowIcon(QIcon(":绿蝴蝶.ico")) # 使用资源文件中的图标 window.show() app.exec_() ``` 这里的 `:绿蝴蝶.ico` 表示从资源文件中加载图标[^1]。 #### 4. 配置 PyInstaller 打包命令 使用 PyInstaller 打包时,可以通过命令行参数指定 `.ico` 文件打包命令如下: ```bash pyinstaller -F -w --icon=绿蝴蝶.ico main.py ``` - `-F`:表示生成单个可执行文件。 - `-w`:表示无控制台模式。 - `--icon=绿蝴蝶.ico`:指定图标的路径。 #### 5. 确保资源文件被正确包含 如果需要将其他资源文件(如图片、配置文件等)包含到最终的可执行文件中,可以在 PyInstaller 的 `.spec` 文件行配置。例如: ```python # -*- mode: python -*- block_cipher = None a = Analysis(['main.py'], pathex=['.'], binaries=[], datas=[('绿蝴蝶.ico', '.')], # 添加资源文件 hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, [], exclude_binaries=True, name='MyApp', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, console=False, icon='绿蝴蝶.ico') # 指定图标 coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='MyApp') ``` 通过上述配置,可以确保 `.ico` 文件和其他资源文件被正确包含到最终的可执行文件中[^4]。 #### 6. 测试生成的可执行文件 完成打包后,测试生成的可执行文件是否正常运行,并确认图标是否正确显示。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值