Question

Dans un programme pyqt4, j'ai un QLabel afficher une image avec le code suivant:

dans le code d'initialisation:

Image=QImage(som_path_from_a_fileDialog)

dans la méthode de modification de taille:

pixmap = QPixmap.fromImage(Image)
pixmap = pixmap.scaled(self.display.size())
self.display.setPixmap(pixmap)

Quand j'exécuter mon script avec python, il fonctionne très bien, et je peux afficher .bmp et les fichiers JPEG. Si je compile l'aide py2exe cependant, je ne vais pouvoir afficher les fichiers .bmp. JPEG affichage du fichier échoue avec:

QPainter::begin: Paint device returned engine == 0, type: 3
QPainter::end: Painter not active, aborted
QPixmap::scaled: Pixmap is a null pixmap

EDIT: Il est un double de cette question

Était-ce utile?

La solution

Prise en charge de nombreux formats d'image dans les versions récentes de PyQt4 disponibles via des plugins. Ces plug-ins peuvent être trouvés dans votre répertoire C:\PythonXY\Lib\site-packages\PyQt4\plugins\imageformats. Vous devez copier le répertoire de imageformats dans le répertoire avec votre exe. S'il vous plaît noter que vous devez avoir répertoire imageformats votre droite le long de la pyapp.exe. Ou vous devriez mettre dans le même répertoire où est votre pyapp.exe situé qt.conf spéciale où vous pouvez spécifier le chemin vers les plug-ins d'images, par exemple.

[Paths]
Plugins = Library\plugins

Voici par exemple du code pour copier le plugin SQLite (ce n'est pas pour les images, mais vous voyez l'idée) quand je construit mon exe:

from distutils.core import setup
import py2exe
import os, sys
import PyQt4

setup(options = {"py2exe": {"includes": ["sip"]}},
     data_files=[('sqldrivers', [os.path.join(os.path.dirname(PyQt4.__file__), 
                                              'plugins', 
                                              'sqldrivers', 
                                              'qsqlite4.dll')])],
     windows = ["myapp.py"],
     )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top