首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缩小图像

缩小图像
EN

Stack Overflow用户
提问于 2012-07-06 18:48:23
回答 1查看 468关注 0票数 1

我有以下代码,它从磁盘加载一个图像,并尝试将其缩小到30x30。稍后,我将标签添加到网格布局中。不幸的是,图像没有缩小到预期的大小,所以网格布局中的所有单元格都有不同的大小。

代码语言:javascript
复制
 pixmap = QtGui.QPixmap(filename)
 pixmap.scaled(QtCore.QSize(30,30), QtCore.Qt.KeepAspectRatio, QtCore.Qt.FastTransformation)
 self.L.append(pixmap)
 lbl = QtGui.QLabel(self)
 lbl.setPixmap(pixmap)
 lbl.setScaledContents(True)
 column=len(self.L)
 self.ui.gridLayout.addWidget(lbl,0,column,Qt.AlignLeft | Qt.AlignTop)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-06 18:50:15

您确定pixmap.scaled会对图像进行就地转换吗?我本以为它会返回一个新的、缩放过的图像--将其赋值给一个变量并使用它。

根据this documentation的说法

返回图像的缩放副本。使用指定的转换模式将返回的图像缩放到给定的高度。自动计算像素图的宽度,以便保留像素图的纵横比。

所以,我想你应该这样做:

代码语言:javascript
复制
 pixmap = QtGui.QPixmap(filename)
 # FIXED:
 scaled_pixmap = pixmap.scaled(QtCore.QSize(30,30), QtCore.Qt.KeepAspectRatio, QtCore.Qt.FastTransformation)
 self.L.append(scaled_pixmap) # FIXED
 lbl = QtGui.QLabel(self)
 lbl.setPixmap(pixmap)
 lbl.setScaledContents(True)
 column=len(self.L)
 self.ui.gridLayout.addWidget(lbl,0,column,Qt.AlignLeft | Qt.AlignTop)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11360744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档