1

私はPyQt4に混乱しています。私はpython2.6で次の手順を試しました:

In [1]: from PyQt4 import QtGui

In [2]: import sys

In [3]: app = QtGui.QApplication(sys.argv)

In [4]: pix = QtGui.QPixmap("P1010001.JPG")

In [5]: pix.width(), pix.height()
Out[5]: (0, 0)

とがゼロwidthを表示するのはなぜですか? height画像は存在し、問題ありません。これは完全に直感に反しており、Python には期待していません。

4

1 に答える 1

3

PyQt は、物事をより Pythonic にするために、あちこちに構文糖衣を追加します。しかし、それはほとんど Qt (C++ ライブラリ) のかなり薄いラッパーです。そのため、PyQt が常にPython プログラマーにとって直感的な方法で動作すると期待するのは間違いです。

ほとんどの Python プログラマーは、存在しないパスを設定すると QPixmap がエラーを発生させることを期待していると思います。しかし、Qt はこれを行いません。この場合、PyQt も行いません。代わりに、次を使用して、有効なピックスマップがあることを確認できます。

pix.isNull()

例のコードを実際に修正するには、最初に適切なディレクトリに変更する (または絶対パスを使用する) 必要があります。

于 2012-12-13T00:30:27.370 に答える