Exe的窗口图标在PyQt4

我在PyQt4有一个小程序,我想编译成一个exe程序。 我正在使用py2exe来做到这一点。 我可以成功地在Windows标题栏中使用下面的代码设置图标,但是当我编译成exe文件时,图标会丢失,我会看到默认的Windows应用程序。 这里是我的程序:

import sys from PyQt4 import QtGui class Icon(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Icon') self.setWindowIcon(QtGui.QIcon('c:/python26_/repy26/icons/iqor1.ico')) app = QtGui.QApplication(sys.argv) icon = Icon() icon.show() sys.exit(app.exec_()) 

****这里是py2exe的setup.py ****

 from distutils.core import setup import py2exe setup(windows=[{"script":"iconqt.py" ,"icon_resources": [(1, "Iqor1.ico")]}] ,options={"py2exe":{"includes":["sip", "PyQt4.QtCore"]}}) 

Solutions Collecting From Web of "Exe的窗口图标在PyQt4"

问题是,py2exe不包括qt图标阅读器插件。 你需要告诉它包含data_files参数。 沿着这些线路的东西:

 setup(windows=[{"script":script_path, "icon_resources":[(1, icon_path)]}], data_files = [ ('imageformats', [ r'C:\Python26\Lib\site-packages\PyQt4\plugins\imageformats\qico4.dll' ])], options={"py2exe":{"packages":["gzip"], "includes":["sip"]}}) 

我相信你需要直接从你用py2exe创建的EXE或DLL引用.ico文件。 您似乎有正确的setup.py脚本,所以看看: http : //www.py2exe.org/index.cgi/CustomIcons 。 有一个wxWidgets的例子,但你可以尝试适应Qt。

我建议你创建一个名为YourApp.rc的文件,添加下面一行:

 IDI_ICON1 ICON DISCARDABLE "res/icons/app_icon.ico" 

然后在您的.PRO文件中,添加以下行:

 win32{ RC_FILE = YourApp.rc } 

它应该解决你的问题!

我遇到过同样的问题。 出于某种原因,它只能用image.png文件而不是image.ico文件。 不知道为什么。 但我把ico转换成PNG,它工作