2010-02-18 92 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()