问题描述:
在控件上使用QPixmap时,希望能重新修改图片的分辨率,而不是使用图片的原始分辨率
解决方法:
主要有两种方法
- 设置控件的尺寸,例如QPixmap被传入一个QLabel控件时,可以通过设置QLabel控件的尺寸来对QPixmap进行重新裁切。
pix_img = QtGui.QPixmap('./img.png')
label = QtWidget.QLabel()
# 设置label的尺寸
label.setMaximumSize(25, 25)
# 把pix_img传递给label
label.setPixmap(pix_img)
# 设置pix_img填充满Label
label.setScaledContents(True)
这样做的缺点是每个label都需要设置一次,比较繁琐。
- 另一种方法可以直接对Pixmap进行设置
pix_img = QtGui.QPixmap('./img.png')
# 使用scaled方法把 pix_img 的分辨率设置为25像素*25像素
# KeepAspectRatio 可以保留宽高比
# 注意这里需要有一个变量接受属性变更后的地址
pix_img = pix_img.scaled(25, 25, QtCore.Qt.KeepAspectRatio)