Вы можете встроить значок в двоичный файл py2exe с параметром icon_resources
setup(windows=[
{'script':'toto.py', "icon_resources": [(1, "toto.ico")]},
],
Затем вы можете получить его с помощью Windows API
import win32gui, win32api, win32con
from ctypes import c_int, windll
hicon = win32gui.CreateIconFromResource(win32api.LoadResource(None, win32con.RT_ICON, 13), True)
и затем прикрепить кокно, если вы знаете его HWND.
windll.user32.SendMessageA(c_int(hwnd), c_int(win32con.WM_SETICON), c_int(win32con.ICON_SMALL), c_int(hicon))
Константа 13
, используемая в LoadResource
, была найдена с помощью инструмента, подобного ResourceHacker .В ResourceHacker это соответствует имени папки значка.Я не знаю, как он рассчитывается с помощью py2exe, и есть ли способ принудительно установить это значение.
Я также не знаю, существует ли для этого чистый способ TkInter, и если значок может бытьиспользуется как есть в окне tkinter.
Надеюсь, это поможет