2011-12-31 12 views
10

Desidero visualizzare un'immagine in pyqt, quindi ho usato un'etichetta e l'opzione pixmap e il ridimensionato, ma l'immagine è distorta. Devo usare un altro widget o fare qualcos'altro? Grazie.PyQt: Come posso visualizzare un'immagine correttamente?

Questo è il codice:

from PyQt4 import QtCore, QtGui 
self.label.setPixmap(QtGui.QPixmap(_fromUtf8('image.jpg'))) 
self.label.setScaledContents(True) 

io uso QtDesigner.

ho provato questo: self.label.pixmap().scaled(QtCore.QSize(self.label.size()), QtCore.Qt.KeepAspectRatio, QtCore.Qt.FastTransformation)

ma le immagini non si ottiene ridimensionata per adattarsi l'etichetta.

+0

bisogno di codice per aiutare. –

risposta

12

Usa il metodo scaled(const QSize, Qt::AspectRatioMode, Qt::TransformationMode) della pixmap, ha un'opzione Qt::KeepAspectRatio che non deforma l'immagine. Il valore predefinito è di ignorare il rapporto di aspetto

Si noti inoltre che il metodo scaled restituisce la scala pixmap, quindi deve essere utilizzato in questo modo:

myPixmap = QtGui.QPixmap(_fromUtf8('image.jpg')) 
myScaledPixmap = myPixmap.scaled(self.label.size(), Qt.KeepAspectRatio) 
self.label.setPixmap(myScaledPixmap) 
+0

Puoi farmi un esempio? – GiannisIordanou

+0

self.label.pixmap(). Ridimensionato (QSize (self.label.size(), Qt.KeepAspectRatio, Qt.FastTransformation), Eventualmente è possibile scegliere una dimensione diversa – Gianluca

+0

I se utilizzo quanto sopra dopo: self.label .setPixmap (QtGui.QPixmap (_fromUtf8 ('image.jpg'))) dà un errore, di sintassi non valida – GiannisIordanou

0

yourPixmapLabel.setScaledContents (True) ridimensiona la pixmap per riempire lo spazio libero e deve essere sufficiente. altrimenti lasciaci vedere qualche codice ex

Problemi correlati