2
爲什麼這段代碼顯示一個沒有圖像的窗口?我嘗試使用QByteArray而不是StringIO,但我有相同的結果。有人知道答案嗎?PyQt和字符串中的圖像
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_())
更新: 我需要證明從StringIO的圖像(或任何RAM另一個對象),因爲我pycurl下載它不保存到硬盤。
更新2: 添加布局使用,如Petr Viktorin建議,但代碼仍然不工作。
UPDATE 3: @Petr Viktorin,這個代碼只在我想顯示PNG文件時才起作用,但是當圖像--Jpeg/jpg時,我看到空的表單。也許問題在QPixmap?
更新4: 測試了各種圖像,但... http://i39.tinypic.com/3535mqd.jpg哪裏有問題?
這不是一個更簡單的解決方案嗎? 'pic = QtGui.QPixmap(「:/ img/image.png」)' – RobinJ
您從@ PetrViktorin的答案更新了您的問題,但您沒有註冊或接受它。你的問題現在解決了嗎?還是不是? – ekhumoro
該代碼現在適用於我。 –