我在Windows环境中使用Python 3.6,PyQt5和cx_Freeze。我用来在主窗口和子窗口上显示图标的代码部分是:
if getattr(sys, 'frozen', False): # If frozen with cx_Freeze
homePath = os.path.dirname(sys.executable)
else: # Otherwise, if running unfrozen (e.g., within Spyder)
homePath = os.path.dirname(__file__)
iconFileName = os.path.join(homePath, 'iconLarge.ico')
setWindowIcon(QIcon(iconFileName))
冻结程序默认为Windows选择的图标,而不是我在代码中指定的图标。但是,未冻结的脚本会按照我的预期显示iconLarge.ico
。
到目前为止我找到的所有解决方案都是在使用PyQt4而不是PyQt5时,这些解决方案要么不适用于PyQt5,要么没有解决问题。 以下是来自setup.py的代码,用于标识图标文件:
exe=Executable(script="mycode.py", base = "Win32GUI", icon = "iconLarge.ico")
cx_Freeze将文件iconLarge.ico放在冻结构建的主文件夹中,这是我期望的。冻结应用程序的其余部分完全按预期运行。
有关如何在使用cx_Freeze冻结时显示窗口图标的建议?