문제

PYQT4 프로그램에는 다음 코드가있는 이미지를 표시하는 Qlabel이 있습니다.

Init Code에서 :

Image=QImage(som_path_from_a_fileDialog)

크기 조정 방법에서 :

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

Python으로 스크립트를 실행하면 잘 작동하며 .BMP 및 JPEG 파일을 표시 할 수 있습니다. 그러나 py2exe를 사용하여 컴파일하면 .bmp 파일 만 표시 할 수 있습니다. JPEG 파일 디스플레이는 다음과 같이 실패합니다.

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

편집 : 복제본입니다 이 질문

도움이 되었습니까?

해결책

플러그인을 통해 사용 가능한 최근 버전의 PYQT4에서 많은 이미지 형식을 지원합니다. 이 플러그인은 귀하의 경우 찾을 수 있습니다 C:\PythonXY\Lib\site-packages\PyQt4\plugins\imageformats 예배 규칙서. 복사해야합니다 imageformats EXE와 함께 디렉토리 디렉토리. 당신이 필요하다는 점에 유의하십시오 imageformats pyapp.exe를 따라 바로 디렉토리. 또는 Pyapp.exe가 이미지 플러그인의 경로를 지정할 수있는 특별 QT.conf가있는 동일한 디렉토리에 넣어야합니다.

[Paths]
Plugins = Library\plugins

다음은 SQLITE 플러그인을 복사하는 코드의 예입니다 (이미지는 아니지만 아이디어를 얻을 수 있습니다).

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"],
     )
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top