2011-12-31 19 views
10

Quiero mostrar una imagen en pyqt, así que utilicé una etiqueta y la opción de mapa de píxeles, y los documentos escalados pero la imagen está distorsionada. ¿Debo usar otro widget o hacer otra cosa? Gracias.PyQt: ¿Cómo visualizo una imagen correctamente?

Este es el código:

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

utilizo QtDesigner.

yo probamos este: self.label.pixmap().scaled(QtCore.QSize(self.label.size()), QtCore.Qt.KeepAspectRatio, QtCore.Qt.FastTransformation)

pero las imágenes no obtienen el cambio de tamaño para adaptarse a la etiqueta.

+0

Necesita código para ayudar. –

Respuesta

12

Utilice el método scaled(const QSize, Qt::AspectRatioMode, Qt::TransformationMode) del mapa de puntos, tiene una opción Qt::KeepAspectRatio que no deforma la imagen. El valor por defecto es ignorar la relación de aspecto

Además, tenga en cuenta que el método devuelve el scaledpixmap reducido, por lo que debe ser utilizado de esta manera:

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

¿Me puede dar un ejemplo? – GiannisIordanou

+0

self.label.pixmap(). Escalado (QSize (self.label.size(), Qt.KeepAspectRatio, Qt.FastTransformation), Eventualmente puede elegir un tamaño diferente – Gianluca

+0

I si utilizo lo anterior después de: self.label .setPixmap (QtGui.QPixmap (_fromUtf8 ('image.jpg'))) da un error, de sintaxis no válida. – GiannisIordanou

0

yourPixmapLabel.setScaledContents (Verdadero) escala el mapa de puntos para llenar el espacio libre y debe ser suficiente. de lo contrario, veamos algunos códigos ex

Cuestiones relacionadas