PyQt:我该如何正确显示图像?
我想在pyqt中显示一张图片,所以我用了一个标签和pixmap选项,还有scaledContents,但图片看起来变形了。我是不是应该换个控件或者做点别的?谢谢。
这是我的代码:
from PyQt4 import QtCore, QtGui
self.label.setPixmap(QtGui.QPixmap(_fromUtf8('image.jpg')))
self.label.setScaledContents(True)
我使用的是QtDesigner。
我试过这个:self.label.pixmap().scaled(QtCore.QSize(self.label.size()), QtCore.Qt.KeepAspectRatio, QtCore.Qt.FastTransformation)
但是图片没有调整大小以适应标签。
2 个回答
0
yourPixmapLabel.setScaledContents(True) 这个命令的意思是把图片调整大小,让它填满可用的空间。如果没有做到这一点,我们可以看看一些代码示例。
14
使用scaled(const QSize, Qt::AspectRatioMode, Qt::TransformationMode)
这个方法来处理图像,它有一个选项Qt::KeepAspectRatio
,可以保持图像的比例,不会让图像变形。默认情况下,它是不考虑比例的。
另外,要注意scaled
这个方法会返回调整大小后的pixmap
,所以你需要这样使用:
myPixmap = QtGui.QPixmap(_fromUtf8('image.jpg'))
myScaledPixmap = myPixmap.scaled(self.label.size(), Qt.KeepAspectRatio)
self.label.setPixmap(myScaledPixmap)