赞
踩
使用 PyInstaller 对程序进行打包,不能打包背景图片。打包后的软件可以正常运行,但涉及到图片相关的资源(如背景图片,头像)全部不显示。
当使用Python PyInstaller对程序进行打包时,如果程序中涉及到背景图片,会出现无法打包背景图片的问题。这是由于PyInstaller默认只会将代码和依赖的库文件打包进可执行文件中,而不会将文件资源如图片等打包进去。因此,这些文件在程序运行时无法被找到,导致程序无法正常显示背景图片。
利用 PYQT 自带的 Pyrcc 系统,将图片转化为QT能调用的资源文件,然后在源代码中调用图片资源。
<RCC>
<qresource prefix="IMAGES">
<file alias="icon">./icon.jpg</file>
</qresource>
</RCC>
Vscode中的操作是,右击image.qrc 文件,选择 PYQT:Compile Resource。
点击 PYQT:Compile Resource后,可以看到新生成的 image_rc.py 文件。
对这个方式有疑问的可以看这篇博客:
Pyrcc 环境配置验证
有了新生成的 image_rc.py 文件,我们再将image_rc.py文件引用,再UI.py文件中调用资源文件。这里 image_rc 是我的资源文件 image_rc.py 的包名字。
import image_rc # 引用image_rc.py资源文件
调用资源图片,就将如下原代码
# 设置控件背景
self.label.setStyleSheet("border-image:url(./icon.jpg);")
修改为
self.label.setStyleSheet("border-image: url(:IMAGES/icon);")
IMAGES 对应 image.qrc文件里代码内容,IMAGES 是前缀值,icon是alias值
其他使用方式:
self.label_user_icon.setPixmap(QtGui.QPixmap(":IMAGES/icon"))
这个时候再去打包软件,就可以将图片资源一起打包带走了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。