question pyqt4 avec jpeg lors de la compilation
-
18-09-2019 - |
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
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"],
)