2010-02-18 14 views
13

Jak mogę dodać lub zaimportować zdjęcie do QWidget? Znalazłem wskazówkę. Mogę dodać Label i dodać Picture w tej etykiecie. Potrzebuję argumentów dla QPicture(). Prawdopodobne, że mogę go użyć to: QLabel.setPicture(self.QPicture).Jak dodać zdjęcie do QWidget w PyQt4

Odpowiedz

11

QPicture nie jest tym, czego potrzebujesz. QPicture nagrywa i odtwarza polecenia QPainter. To, czego chcesz, to QPixmap. Podaj nazwę pliku konstruktorowi QPixmap i ustaw tę pikselapię na etykiecie, używając QLabel.setPixmap().

Przykładem implementacja w Pythonie byłoby:

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

Oto kod, który robi to, co ty i @erelender opisane:

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_()) 

Ogólny QWidget nie posiada setPixmap(). Jeśli to podejście nie działa dla ciebie, możesz spojrzeć na tworzenie własnego niestandardowego widżetu, który pochodzi od QWidget i zastąpić metodę paintEvent, aby wyświetlić obraz.

+0

ten stawia QLabel ontop wszystkich widżetów mam, jak można umieścić go za każdym widget i zawsze dopasować do szerokości okna, jeśli zmieniany? –

-1

Użyj tego urywek w skrypcie 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()