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.)
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
.
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.
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'))
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:])