0

PyQT4プログラムでは、次のコードで画像を表示するQLabelがあります。

初期化コード内:

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

編集:これはこの質問の複製です

4

1 に答える 1

3

プラグインを介して利用可能なPyQt4の最近のバージョンでの多くの画像形式のサポート。これらのプラグインは、C:\PythonXY\Lib\site-packages\PyQt4\plugins\imageformatsディレクトリにあります。imageformatsディレクトリをexeファイルのあるディレクトリにコピーする必要があります。imageformatspyapp.exeに沿ってディレクトリが必要であることに注意してください。または、pyapp.exeが特別なqt.confにあるのと同じディレクトリに配置する必要があります。ここで、イメージプラグインへのパスを指定できます。

[Paths]
Plugins = Library\plugins

exeをビルドしたときに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"],
     )
于 2010-02-05T11:28:20.697 に答える