2010-02-18 11 views
13

Wie kann ich ein Bild zu einem QWidget hinzufügen oder importieren? Ich habe einen Hinweis gefunden. Ich kann ein Label hinzufügen und ein Picture in diesem Etikett hinzufügen. Ich brauche die Argumente für die QPicture(). Die Wahrscheinlichkeit, die ich verwenden kann, ist, QLabel.setPicture(self.QPicture).Wie kann ich ein Bild zu einem QWidget in PyQt4 hinzufügen?

Antwort

11

QPicture ist nicht was Sie wollen. QPicture Aufzeichnungen und Wiederholungen QPainter Befehle. Was Sie wollen, ist QPixmap. Geben Sie dem QPixmap-Konstruktor einen Dateinamen, und legen Sie dieses Pixmap mit QLabel.setPixmap() auf dem Etikett fest.

Ein Implementierung Beispiel in Python wäre:

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

Hier ist ein Code, der tut, was Sie und @erelender beschrieben:

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

Ein generisches QWidget nicht setPixmap() haben. Wenn dieser Ansatz für Sie nicht funktioniert, können Sie ein eigenes benutzerdefiniertes Widget erstellen, das von QWidget abgeleitet ist, und die Methode paintEvent überschreiben, um das Bild anzuzeigen.

+0

dies setzt die QLabel ontop aller Widgets Ich habe, wie würden Sie es hinter jedem Widget setzen und immer auf die Breite des Fensters passen, wenn der Größe verändert? –

-1

Verwenden Sie dieses Snippet in Ihrem GUI-Skript:

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