PyQt4 définir l'icône de la barre des tâches de windows

je travaille sur une applcation dans PyQt4 de Python et je ne peux pas trouver comment changer l'icône de la barre des tâches. J'ai fait mon .fichiers ui dans le créateur de Qt, où je peux changer les propriétés windowIcon . Mais ce n'est pas ce que je recherche. Je veux changer l'apparence de l'icône de l'application dans windows taskbar. Pour l'instant, c'est le logo Python dans une icône de fenêtre.

j'ai trouvé des informations sur: lien , mais cela ne m'aide beaucoup.

J'ai essayé:

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

mais l'icône reste inchangée.

ce que je veux changer, en montrant la photo: (Ceci est fait en appelant le setWindowIcon sur la fenêtre principale/ boîte de dialogue, ou l'application, comme indiqué ci-dessus.)

Taskbar icon change

25
demandé sur Community 2012-09-15 02:12:49

4 réponses

ce problème est causé par certaines particularités dans la façon dont les icônes de barre des tâches sont traitées sur la plate-forme Windows.

Voir cette réponse pour plus de détails, avec une solution de contournement à l'aide de ctypes .

16
répondu ekhumoro 2017-05-23 11:54:58

il me semble que le problème peut être causé par l'absence d'icône avec la bonne taille. La configuration suivante a fonctionné pour moi dans 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)

j'ai une icône de barre de tâches dans Windows 7 et corriger les icônes dans toutes les fenêtres sans aucun changement aux fichiers ui.

9
répondu Slawek Rewaj 2014-01-24 10:32:50

pour moi, le code suivant fonctionne à la fois pour changer l'icône de barre de tâches et l'icône de fenêtre

win.setWindowIcon(QIcon('logo.png'))
2
répondu user6657441 2017-04-21 05:57:25

vous devez appeler setWindowIcon (...) sur la fenêtre, pas sur l'application.

Voici un exemple qui fonctionne pour moi:

#!/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:])
1
répondu Jeremiah 2012-09-15 00:52:49