PyQt:我该如何正确显示图像?

10 投票
2 回答
39280 浏览
提问于 2025-04-17 09:18

我想在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)

撰写回答