Почему этот код показывает мне окно без изображения? Я пытаюсь использовать QByteArray вместо StringIO, но у меня такой же результат. Кто-нибудь знает ответ?
import sys
from PyQt4 import QtGui, QtCore
from StringIO import StringIO
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
cs=StringIO()
cs.write(open("image.jpeg",'rb').read())
p = QtGui.QPixmap()
p.loadFromData(cs.getvalue())
lbl=QtGui.QLabel()
lbl.setPixmap(p)
layout = QtGui.QHBoxLayout(self)
layout.addWidget(lbl)
self.move(20, 30)
self.setWindowTitle('Picture')
self.show()
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
UPDATE:
Мне нужно показать изображение из StringIO (или любого другого объекта в оперативной памяти), потому что я загружаю его с помощью Pycurl без сохранения на HDD.
ОБНОВЛЕНИЕ 2:
Добавлен Layout с использованием, как советовал Петр Викторин, но код все еще не работает.
ОБНОВЛЕНИЕ 3:
@Petr Viktorin, этот код работает только тогда, когда я хочу отобразить файл PNG, но когда изображение - Jpeg / jpg, я вижу пустую форму. Может быть проблема в QPixmap?
ОБНОВЛЕНИЕ 4:
Протестировано с различными изображениями, но ...
http://i39.tinypic.com/3535mqd.jpg Где проблема?