Bonjour à tous,

En voulant diffuser une application python + Qt avec cx_Freeze j'ai remarqué quelque chose de curieux. Les icônes définies à partir de fichiers SVG ne
s'affichent pas. Ce qui n'est pas le cas à partir d'un fichier PNG par exemple.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
import sys
from PyQt4 import QtGui, QtCore
 
class MonWidget(QtGui.QWidget):
    def __init__(self):
        super(MonWidget, self).__init__()
 
        self.but1 = QtGui.QPushButton(
            QtGui.QIcon(u'Flag_of_France.svg'),
            'France.svg')
        self.but2 = QtGui.QPushButton(
            QtGui.QIcon(u'Flag_of_France.png'),
            'France.png')
        lay = QtGui.QVBoxLayout()
        lay.addWidget(self.but1)
        lay.addWidget(self.but2)
        self.setLayout(lay)
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    wid = MonWidget()
    wid.show()
    sys.exit(app.exec_())
Depuis la ligne de commande python monexemple.py OK

monexemple.exe ==> seule l'cône PNG est affichée

Où est le problème quand il suffit de convertir l'icône dans le format PNG, pourrait-on se demander.

Effectivement, c'est la solution que j'adopte. Mais j'aimerais assez connaître
l'explication de ce petit mystère.

Si quelqu'un la connaît, je suis preneur

Merci d'avance