我有一个 PySide GUI 应用程序(用 Python 3 编写,在 Windows 7 Pro 上运行),我在其中设置应用程序图标如下:
class MyGui(QtGui.QWidget):
def __init__(self):
super(MyGui, self).__init__()
...
self.setWindowIcon(QtGui.QIcon('MyGui.ico'))
if os.name == 'nt':
# This is needed to display the app icon on the taskbar on Windows 7
import ctypes
myappid = 'MyOrganization.MyGui.1.0.0' # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
...
我ctypes
从这个答案中得到了这些东西。如果我删除这些行,那么当我执行python MyGui.py
.
包含这些行后,一切看起来都很棒,窗口和任务栏上有正确的图标。但是,当我使用 cxfreeze 打包 gui 时,窗口和任务栏图标都变为通用的 windows .exe 图标。
我正在使用此处cxfreeze.bat
的说明打包应用程序,包括开关。使用该开关使生成的 exe 在资源管理器中查看时具有正确的图标。但是,应用程序窗口和任务栏在我启动应用程序时不显示图标。我尝试将 .ico 文件复制到与 .exe 相同的目录,但这没有帮助。--icon
我在 Windows 7 和 8 上都得到了相同的行为。奇怪的是,如果我将应用程序固定到任务栏,任务栏图标会正确显示,但窗口图标仍然是通用的 exe 图标。
如何让图标正确显示?