PyQt4设置windows任务栏图标

Mar*_*rko 25 python windows icons taskbar pyqt

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

我在SO:链接上找到了一些信息,但它对我帮助不大.

我试过:

app = QtGui.QApplication([])
app.setWindowIcon(QtGui.QIcon('chip_icon_normal.png'))
app.exec_()
Run Code Online (Sandbox Code Playgroud)

但图标保持不变.

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

任务栏图标更改

ekh*_*oro 19

此问题是由Windows平台上如何处理任务栏图标的一些特殊原因引起的.

有关详细信息,请参阅此答案以及使用的解决方法ctypes.


Sla*_*waj 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)
Run Code Online (Sandbox Code Playgroud)

我在Windows 7中有一个任务栏图标,并在所有窗口中更正图标,而不对ui文件进行任何更改.


Jer*_*iah 6

您需要在窗口上调用 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:])
Run Code Online (Sandbox Code Playgroud)

  • 不,为“QApplication”设置一个图标很好。它定义了默认图标。任何未指定图标的窗口都将使用它。[参见文档](http://doc.qt.nokia.com/4.7-snapshot/qwidget.html#windowIcon-prop) (2认同)