已解决-解决方案已发布为答案,谢谢大家的帮助。
使用PyQt5
将python应用程序编译为可执行文件后,GUI中包含的图标将被删除/不显示。
具体来说,使用QIcon
将Window(QMainWindow)
实例添加到我的self.setWindowIcon(QtGui.QIcon(fpath))
类中,并通过QPixmap(f2path)
将QLabel
嵌入到label.setPixmap(myPixmap)
中。
我试图在该论坛上搜索可能的解决方案,但找不到解决问题的线索。 我尝试按照此处Bundling data files with PyInstaller (--onefile)和此处Missing button icons in pyinstaller
的建议设置绝对文件路径不知道从哪里开始检查问题,使用pyinstaller
进行编译时没有错误,并且可以作为python脚本正常运行。
pyinstaller -w -F MY_GUI.py
谢谢!
示例:
import sys
import os
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
import sys
import resource_path # code taken from links above
from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.title = "MyProg"
self.top = 400
self.left = 400
self.width = 680
self.height = 540
icon_path = resource_path("icon.png")
self.setWindowIcon(QtGui.QIcon(icon_path))
self.InitUI()
def InitUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.top, self.left, self.width, self.height)
self.show()
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())
答案 0 :(得分:2)
解决方案是将图像文件专门添加到.spec
文件中,并使用pyinstaller myGUI.spec
生成.exe
文件。
感谢大家在评论中的帮助!
.spec
文件的相关部分如下:
a = Analysis(['myGUI.py'],
...,
datas = [('myIcon.png', '.')],
...)