У меня есть приложение PySide GUI (написанный на Python 3, работает на Windows 7 Pro), в котором я устанавливаю значок приложения следующим образом:Применения в PySide GUI
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
материала от this answer. Если я удалю эти строки, тогда значок Python будет отображаться на панели задач при выполнении python MyGui.py
.
С этими линиями все выглядит великолепно, с правильным значком в окне и на панели задач. Однако, когда я упаковываю gui, используя cxfreeze, и значки окна и панели задач меняются на общий значок .exe.
Я использую cxfreeze.bat
, чтобы упаковать приложение, используя инструкции, которые были найдены here, включая переключатель --icon
. Использование этого переключателя делает сгенерированный exe правильным значком при просмотре в проводнике. Тем не менее, окно приложения и панель задач не показывают значок при запуске приложения. Я попытался скопировать файл .ico в тот же каталог, что и .exe, но это не помогает.
Я получаю то же поведение на обеих Windows 7 & 8. Любопытно, что если я подключу приложение к панели задач, значок панели задач отображается правильно, но значок окна по-прежнему является общим символом exe.
Как я могу правильно отобразить значок?
Это работает! Огромное спасибо. Я видел некоторую информацию, говорящую о требовании qico4.dll, но решения о том, где это сделать, были разными, и пара, которую я пробовал, не работала. Иметь значок как .ico, так и .png не самый лучший, но это самое простое решение проблемы. – Praetorian