我正在使用Python的PyQt4中的applcation,但无法找到如何更改任务栏图标。我在Qt的Designer中创建了.ui文件,我可以在其中更改windowIcon
属性。但这不是我想要的。我想在Windows任务栏中更改应用程序图标的外观。现在它是一个窗口图标中的Python徽标。
我发现了一些关于SO的信息:link但它对我帮助不大。
我试过:
app = QtGui.QApplication([])
app.setWindowIcon(QtGui.QIcon('chip_icon_normal.png'))
app.exec_()
但图标保持不变。
我想改变什么,显示图片: (这是在主窗口/对话框或应用程序上调用setWindowIcon完成的,如上所示。)
答案 0 :(得分:17)
此问题是由Windows平台上处理任务栏图标的一些特殊原因引起的。
有关详细信息,请参阅this answer,以及使用ctypes
的解决方法。
答案 1 :(得分:11)
在我看来,问题可能是由于缺少尺寸合适的图标造成的。 以下设置在PyQT4中适用于我:
# set app icon
app_icon = QtGui.QIcon()
app_icon.addFile('gui/icons/16x16.png', QtCore.QSize(16,16))
app_icon.addFile('gui/icons/24x24.png', QtCore.QSize(24,24))
app_icon.addFile('gui/icons/32x32.png', QtCore.QSize(32,32))
app_icon.addFile('gui/icons/48x48.png', QtCore.QSize(48,48))
app_icon.addFile('gui/icons/256x256.png', QtCore.QSize(256,256))
app.setWindowIcon(app_icon)
我在Windows 7中有一个任务栏图标,并在所有窗口中更正图标,而不对ui文件进行任何更改。
答案 2 :(得分:3)
您需要在窗口上调用setWindowIcon(...),而不是在应用程序上调用。
这是一个适合我的例子:
#!/usr/bin/env python3
import os
import sys
import subprocess
import os.path
from PyQt4 import QtGui
from PyQt4 import QtCore
class MyWin(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MyWin, self).__init__(parent)
self.setWindowTitle("My Window")
self.setWindowIcon(QtGui.QIcon('test_icon.png'))
self.show()
def main(args):
app = QtGui.QApplication([])
ww= MyWin()
sys.exit(app.exec_())
if __name__ == '__main__':
main(sys.argv[1:])
答案 3 :(得分:3)
对我来说,以下代码适用于更改任务栏图标和窗口图标
win.setWindowIcon(QIcon('logo.png'))