2010-02-18 22 views

Respuesta

11

QPicture no es lo que desea. QPicture registra y reproduce comandos QPainter. Lo que quiere es QPixmap. Asigne un nombre de archivo al constructor QPixmap y establezca este mapa de bits en la etiqueta usando QLabel.setPixmap().

Un ejemplo de implementación en Python sería:

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

Aquí hay un código que hace lo que describes y @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_()) 

Un genérico QWidget no tiene setPixmap(). Si este enfoque no funciona para usted, puede ver su propio widget personalizado que deriva de QWidget y anular el método paintEvent para mostrar la imagen.

+0

esto pone al QLabel sábana de todos los widgets que tengo, ¿cómo ponerlo detrás de cada widget y siempre se ajuste a la anchura de la ventana si cambia de tamaño? –

-1

Usar este fragmento en el script de interfaz gráfica de usuario:

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