web-dev-qa-db-fra.com

Comment définir une icône de fenêtre avec PyQt5?

from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class Application(QMainWindow):
    def __init__(self):
        super(Application, self).__init__()
        self.setWindowIcon(QtGui.QIcon('icon.png'))

J'essaie de définir une icône de fenêtre (en haut à gauche de la fenêtre) mais l'icône normale a disparu à la place.

J'ai essayé avec de nombreuses résolutions d'icônes (8x8, 16x16, 32x32, 64x64) et des extensions (.png et .ico).

Qu'est-ce que je fais mal?

11
HumanAfterAll

La réponse a été donnée par le demandeur (icône invisible). Je voulais ajouter que le script ne peut pas être exécuté dans le répertoire de script. Dans tous les cas, pour être sûr, vous voudrez peut-être vous assurer que l'icône est chargée par rapport au répertoire dans lequel réside le script:

import os 
# [...]
scriptDir = os.path.dirname(os.path.realpath(__file__))
self.setWindowIcon(QtGui.QIcon(scriptDir + os.path.sep + 'logo.png'))
6
DomTomCat

La commande, comme suggéré par le demandeur, fonctionne pour moi:

 self.setWindowIcon(QtGui.QIcon('icon.png'))

J'ai mis 256x256 png et tout allait bien. J'ai Win 7 pro 64 bits, Python 3.5.2 32 bits.

5
drgrujic