Wxpython应用程序图标

Wxpython Application icon

我使用 wxpython 并尝试将图标添加到我的应用程序 (Windows 10)。但是,该图标不会仅显示在应用程序左侧的任务栏中。我使用 wxpython 4.0.7post。有人知道为什么它不起作用吗?这是我的代码:

import wx
"""The icon's type is icon.ico"""
app = wx.App()
frame = wx.Frame(None, -1, title='2', pos=(0, 0), size=(200, 200))
frame.Show(True)
frame.SetIcon(wx.Icon(ICON_PATH, wx.BITMAP_TYPE_ICO))
app.SetTopWindow(frame)
app.MainLoop()

我找到了这个解决方案 - wxpython icon for task bar:

import ctypes
my_app_id = r'mycompany.myproduct.subproduct.version'  # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(my_app_id)

有效。你知道它有什么作用吗?

问题是,当您使用 wx.Frame.SetIcon 时,它会在 window 栏上设置框架图标。任务栏中的图标是可执行文件的图标 运行ning 脚本。这意味着当您直接从源代码 运行 时,图标将是 python 解释器的图标。如果你想在 运行 从源代码中获得图标,你需要使用 win32 API 设置图标,但如果你使用 PyInstaller 等工具分发,你可以使用 --icon选项添加一个图标的exe。