2010-02-18 28 views
13

如何将图片添加或导入QWidget?我发现了一条线索。 我可以添加Label并在该标签中添加Picture。对于QPicture(),我需要参数 。我可以使用的可能性是,QLabel.setPicture(self.QPicture)如何在PyQt4中将图片添加到QWidget中

回答

11

QPicture不是你想要的。 QPicture记录和重播QPainter命令。你想要的是QPixmap。为QPixmap构造函数指定一个文件名,并使用QLabel.setPixmap()将此pixmap设置为标签。

了一个Python实现的例子是:

label = QLabel() 
pixmap = QPixmap('path_to_your_image') 
label.setPixmap(pixmap) 
18

下面是一些代码已经做了你和@erelender描述了:

import os,sys 
from PyQt4 import QtGui 

app = QtGui.QApplication(sys.argv) 
window = QtGui.QMainWindow() 
window.setGeometry(0, 0, 400, 200) 

pic = QtGui.QLabel(window) 
pic.setGeometry(10, 10, 400, 100) 
#use full ABSOLUTE path to the image, not relative 
pic.setPixmap(QtGui.QPixmap(os.getcwd() + "/logo.png")) 

window.show() 
sys.exit(app.exec_()) 

的通用QWidget没有setPixmap()。如果此方法对您不适用,则可以查看制作自己的自定义小部件,该小部件源自QWidget并覆盖paintEvent方法以显示图像。

+0

,这把QLabel ontop的所有我的小部件,你将如何把它的每一个部件的背后,总是适合窗口的宽度,如果调整? – 2013-11-04 16:16:21

-1

使用这个片段在你的GUI脚本:

image = QtGui.QLabel(self) 
image.setGeometry(50, 40, 250, 250) 
pixmap = QtGui.QPixmap("C:\\address\\to\\your_image.png") 
image.setPixmap(pixmap) 
image.show()