2010-02-18 4 views

Répondre

11

QPicture n'est pas ce que vous voulez. QPicture enregistre et rejette les commandes QPainter. Ce que vous voulez, c'est QPixmap. Donnez un nom de fichier au constructeur QPixmap et définissez ce pixmap sur l'étiquette en utilisant QLabel.setPixmap().

Un exemple de mise en œuvre en python serait:

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

Voici un code qui fait ce que vous et @erelender décrit:

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 QWidget générique n'a pas setPixmap(). Si cette approche ne fonctionne pas pour vous, vous pouvez créer votre propre widget personnalisé qui dérive de QWidget et remplacer la méthode paintEvent pour afficher l'image.

+0

cela met le QLabel ontop de tous les widgets que j'ai, comment voulez-vous mettre derrière chaque widget et toujours s'adapter à la largeur de la fenêtre si elle était redimensionnée? –

-1

Utilisez cet extrait dans votre script 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()