在PyQt中设置Windows任务栏图标

问题描述 投票:25回答:4

我正在使用Python的PyQt4开发应用程序,无法找到如何更改任务栏图标的方法。我在Qt的Designer中制作了.ui文件,可以在其中更改windowIcon属性。但这不是我想要的。我想在Windows任务栏中更改应用程序图标的外观。现在,它是窗口图标中的Python徽标。

我在SO上找到了一些信息:link,但对我没有太大帮助。

我尝试过:

app = QtGui.QApplication([])
app.setWindowIcon(QtGui.QIcon('chip_icon_normal.png'))
app.exec_()

但是图标保持不变。

我要更改的内容,显示图片:(这是通过在主窗口/对话框或应用程序上调用setWindowIcon来完成的,如上所示。)

“任务栏图标更改”

python windows pyqt icons taskbar
4个回答
20
投票

此问题是由于在Windows平台上处理任务栏图标的方式有些特殊性引起的。

有关详细信息,请参见this answer,以及使用ctypes的解决方法。


12
投票

在我看来,问题可能是由于缺少尺寸合适的图标引起的。以下设置在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文件没有任何更改。


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
投票

对我来说,以下代码可同时更改任务栏图标和窗口图标

© www.soinside.com 2019 - 2024. All rights reserved.