3

URLからQLabelに画像を設定しようとしています。しかし、私は運がありません。これが私が今それをやろうとしている方法です:

import urllib, cStringIO
img_file = cStringIO.StringIO(urllib.urlopen(image_url).read())
image_file = Image.open(img_file)

次に、これをQImageに設定します。

final_image = QImage(image_file)

self.emit(SIGNAL("finished(QImage)"),
    final_image
)

画像はスレッドからメインGUIのメソッドに戻されます。

def set_image(self, final_image):
    self.main_picture_pixmap = QPixmap.fromImage(final_image).scaled(
        QSize(self.picture_label.size()), 
        Qt.KeepAspectRatio, 
        Qt.FastTransformation
    )
    self.picture_label.setPixmap(self.main_picture_pixmap)

これを行うと、エラーが発生します。

QPixmap::scaled: Pixmap is a null pixmap

とにかくこれを修正する方法、またはこれを行う別の方法はありますか?

4

2 に答える 2

7

URLからアイコンに画像をロードする簡単な式。

from PyQt4.QtGui import QPixmap, QIcon
import urllib

url = 'http://example.com/image.png'    
data = urllib.urlopen(url).read()
pixmap = QPixmap()
pixmap.loadFromData(data)
icon = QIcon(pixmap)
于 2013-11-28T19:13:19.643 に答える
5

QImage.load画像データではなく、ファイル名を取ります。それをしたい場合は、を使用する必要がありますQImage.loadFromData

于 2012-06-17T21:15:40.683 に答える