在 PyQt 中使用 QPixmap 类可以很方便地加载和显示图片。要等比例缩放图片,可以使用 QPixmap 的 scaled() 方法。
以下是一个简单的示例代码,演示如何加载并等比例缩放一张图片:
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap
class Example(QWidget):
def __init__(self):
super().__init__()
# 加载图片
pixmap = QPixmap('image.jpg')
# 缩放图片
scaled_pixmap = pixmap.scaled(300, 200)
# 创建标签并设置图片
label = QLabel(self)
label.setPixmap(scaled_pixmap)
self.setGeometry(300, 300, 350, 250)
self.setWindowTitle('Scaled Image')
self.show()
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
在上面的代码中,我们首先创建一个 QPixmap 对象来加载一张图片。然后,我们调用 scaled() 方法来缩放这张图片,并将得到的 QPixmap 对象设置为标签的图片。最后,我们创建一个窗口,显示缩放后的图片。
在 scaled() 方法中,我们传递了两个参数:缩放后的宽度和高度。这里我们将图片缩放为 300x200 大小。如果你只想缩放宽度或高度,可以传递一个参数,另一个参数传入 -1,scaled() 方法会自动根据原始图片比例计算出对应的大小。
注意,缩放后的图片是一个新的 QPixmap 对象,原始图片不会被修改。如果需要在其他地方使用缩放后的图片,需要将 scaled_pixmap 对象传递给相关方法或类。