python为QT程序添加图标

设置图标

最好使用.gif图标,且不能是由其它格式(如.png)强行更改格式过来的图标文件作为程序图标,否则均有可能导致显示不出来

在开发中使用图标
from PyQt5.QtGui import QIcon
self.setWindowIcon(QIcon('images/squirrel.gif'))

此时,我们只要在主函数模块的同级目录下有images文件夹,且里面包含squirrel.gif图标,我们运行主函数测试时就能正常显示图标。
但是这样做在打包后生成的.exe程序执行时并不能显示图标

打包时图标处理

1.在主函数模块同级目录下创建resources_rc.qrc文件,内容如下(删掉注释)

<!DOCTYPE RCC><RCC version="1.0">
<!--带上前缀,将qrc生成的图标伪装成images目录下的文件 -->
<qresource prefix="/images">
<!--images/squirrel.ico为图标位置 -->
<!--qrc生成的图标名称为image.ico,之后主函数调用的就是这个名称 -->
<file alias="image.ico">images/squirrel.ico</file>
</qresource>
</RCC>

2.将resources_rc.qrc转为.py文件

pyrcc5 -o resources_rc.py resources_rc.qrc

3.引用.py中生成的图标

import resources_rc
# 此处的:/images/image.ico为.py生成的图标,与之前的存储路径无关
# 可以运行测试,如果显示图标,则调用成功
self.setWindowIcon(QIcon(':/images/image.ico'))

4.打包,带上图标物理地址

#run.py为主函数地址
pyinstaller.exe -F -w -i C:\Users\TR\Desktop\translationTools\images\squirrel.ico run.py

5.运行run.exe,成功显示图标
在这里插入图片描述在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Python打包Qt程序并使其不依赖于环境变量,你可以使用PyInstaller工具。PyInstaller是一个用于将Python应用程序打包为独立可执行文件的工具。 首先,确保你已经安装了PyInstaller。你可以使用以下命令来安装它: ``` pip install pyinstaller ``` 接下来,创建一个名为`spec`的文件夹,并在其创建一个名为`myapp.spec`的文件。将以下内容添加到`myapp.spec`文件: ```python # myapp.spec import os from PyInstaller.utils.hooks import collect_submodules # 添加Qt相关的模块 hiddenimports = collect_submodules('PyQt5') # 设置应用程序的名称和路径 name = 'myapp' path = os.path.join(os.path.dirname(__file__), 'src') # 指定可执行文件的名称和图标 exe_name = name + '.exe' icon = os.path.join(path, 'icon.ico') # 指定打包的选项 a = Analysis( [os.path.join(path, 'main.py')], pathex=[path], hiddenimports=hiddenimports, win_no_prefer_redirects=True, win_private_assemblies=True, win_recommended=True, name=name, icon=icon ) # 设置打包的输出路径 build_path = os.path.join(os.getcwd(), 'build') dist_path = os.path.join(os.getcwd(), 'dist') # 创建构建和发布目录 pyz = PYZ(a.pure, a.zipped_data, cipher=None) exe = EXE( pyz, a.scripts, exclude_binaries=True, name=exe_name, icon=icon, debug=False, strip=False, upx=True, console=False ) coll = COLLECT( exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name=name, upx_exclude=[], upx_debug_dlls=[], upx_extra_args=[] ) ``` 在`myapp.spec`文件,你需要指定你的应用程序的名称、路径和其他选项。确保使用正确的路径和文件名。 接下来,在命令行切换到`spec`文件夹,并执行以下命令来打包你的应用程序: ``` pyinstaller myapp.spec ``` 这将在`dist`文件夹创建一个可执行文件,其包含了你的Qt程序以及所有依赖的库和资源文件。你可以将整个`dist`文件夹分发给其他人使用,而不需要依赖于环境变量。 请记住,根据你的应用程序的复杂程度和使用的Qt模块,你可能需要根据需要添加其他的隐藏导入。这可以通过在`myapp.spec`文件的`hiddenimports`列表添加相应的模块来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值