7

QImage(またはPyQt4の何か)を取得して、スクリプトにjpgファイルをロードしようとしています。jpg 画像をスクリプトとしてロードする方法に関する情報を見つけることができませんでした。

これを解決するためにしばらく時間を費やして、私はいくつかのことを利用できませんでした。私の site-packages/PyQt4/plugins/imageformats フォルダーを見ると、次のようになります。

qgif4.dll, qico4.dll,qjpeg4.dll, qmng4.dll, qsvg4.dll, qtga4.dll, qtiff4.dll

QtGui.QImageReader.supportedImageFormats() によると、これは私のpyqt4のインストールで使用できるものです

[PyQt4.QtCore.QByteArray('bmp'), PyQt4.QtCore.QByteArray('pbm'), PyQt4.QtCore.QByteArray('pgm'), PyQt4.QtCore.QByteArray('png'), PyQt4.QtCore.QByteArray('ppm'), PyQt4.QtCore.QByteArray('xbm'), PyQt4.QtCore.QByteArray('xpm')]

また、qt.confファイルがメインのpythonディレクトリにあり、これがあることを確認しました

【パス】

Prefix = C:/Python27/Lib/site-packages/PyQt4
Binaries = C:/Python27/Lib/site-packages/PyQt4

追加してみました

Plugins = C:/Python27/Lib/site-packages/PyQt4/plugins/imageformats
Plugins = C:/Python27/Lib/site-packages/PyQt4/plugins

運がない

Windows 7 64b Home Premiumで、PyQt4 4.9.1(両方とも32b)でpython 2.7.2を実行しています。

バージョン 4.8.1 と 4.8.5 (手元にあったもの) も試しましたが、いずれも jpg をサポートしていませんでした。私は途方に暮れています。これらをサポート対象に戻すにはどうすればよいですか?

4

2 に答える 2

8

これを引き起こす原因となる可能性があると思われる2つの異なる問題があります。そして、私は両方に遭遇したようです。

1日 問題の一部を解決したと思われる「管理者として」PyQt4インストーラーを実行するように指示しました。したがって、すべてを正しく機能させるには、管理者として実行する必要があります。

2位。すべてのプラグインを正しくロードするには、あらゆる種類のイメージをロードする前に、まずQApplicationを作成する必要があります。

それで

app = QtGui.QApplication(sys.argv)

最初に作成する必要があります。

私のスクリプトは次のように実行されます

def main():
    app = QtGui.QApplication(sys.argv)
    win = window()
    win.display()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

これは、管理者としてPyQt4をインストールしてから変更されていませんが、現在はjpegやその他すべてが機能して読み込まれます。

私がやろうとしていたのは、PyQt4アプリケーションによって呼び出されるスクリプトを作成することでしたが、それ自体では実行されないため、最初にQApplcationを作成する必要はありませんでした。ここで私は問題#2に遭遇しました

参考:http ://article.gmane.org/gmane.comp.python.pyqt-pykde/7176/match=jpeg+plugin+not+loading

管理者としてインストールし、必要がない場合でも常にQApplicationを作成します。

また、アイドル状態で何が利用できるかを確認しているだけの場合:

from PyQt4 import QtGui
QtGui.QImageReader.supportedImageFormats()

すべてが表示されるわけではありませんが、実行する必要があります

from PyQt4 import QtGui
import sys
app = QtGui.QApplication(sys.argv)
QtGui.QImageReader.supportedImageFormats()

これは追跡するのが面倒だったので、うまくいけば、これは他の人に役立つでしょう。

于 2012-05-19T23:24:44.770 に答える