admin管理员组

文章数量:1650971

我有一个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)

...

我从this answer那里得到了ctypes的东西。如果删除这些行,则在执行python MyGui.py时,任务栏中将显示Python图标。

有了这些行,一切看起来都很好,在窗口和任务栏上有正确的图标。但是,当我使用cxfreeze打包gui时,窗口和任务栏图标都将更改为通用的windows.exe图标。

我正在使用cxfreeze.bat来打包应用程序,使用找到的here指令,包括--icon开关。使用该开关可以使生成的exe在资源管理器中查看时具有正确的图标。但是,当我启动应用程序时,应用程序窗口和任务栏不会显示图标。我试图将.ico文件复制到与.exe相同的目录中,但这没有帮助。

我在两个Windows 7&8上都有相同的行为。奇怪的是,如果我将应用程序固定到任务栏,任务栏图标会正确显示,但窗口图标仍然是通用的exe图标。

如何使图标正确显示?

本文标签: 应用程序图标不见了桌面Python