gpt4 book ai didi

python - 如何设置像素图的最大宽度和高度?

转载 作者:行者123 更新时间:2023-12-01 04:55:30 24 4
gpt4 key购买 nike

我有一个显示图像的窗口,如下所示:

import sys
from PyQt4 import QtGui

class Window(QtGui.QWidget):

def __init__(self):
super(Window, self).__init__()

self.initUI()

def initUI(self):

pixmap = QtGui.QPixmap("image.jpg")

pixmapShow = QtGui.QLabel(self)
pixmapShow.setPixmap(pixmap)

grid = QtGui.QGridLayout()
grid.setSpacing(10)

grid.addWidget(pixmapShow, 0, 1)

self.setGeometry(400, 400, 400, 400)
self.setWindowTitle('Review')
self.show()

if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
ex = Window()
sys.exit(app.exec_())

如何设置显示像素图所允许的最大宽度和最大高度?

  • 如果图像宽度超过 350 像素或高度超过 200 像素,则应将图像缩小直至一维等于 350 像素,并保持宽高比。
  • 如果图像小于 350x200,则不会发生缩放。

最佳答案

您可以定义自己的像素图容器类,它根据调整大小事件自动缩放像素图。

class PixmapContainer(QtGui.QLabel):
def __init__(self, pixmap, parent=None):
super(PixmapContainer, self).__init__(parent)
self._pixmap = QtGui.QPixmap(pixmap)
self.setMinimumSize(1, 1) # needed to be able to scale down the image

def resizeEvent(self, event):
w = min(self.width(), self._pixmap.width())
h = min(self.height(), self._pixmap.height())
self.setPixmap(self._pixmap.scaled(w, h, QtCore.Qt.KeepAspectRatio))

然后在你的代码中,它非常简单:

def initUI(self):

pixmapShow = PixmapContainer("image.jpg")
pixmapShow.setMaximumSize(350, 200)

grid = QtGui.QGridLayout(self)
grid.setSpacing(10)
grid.addWidget(pixmapShow, 0, 1)

self.setGeometry(400, 400, 400, 400)
self.setWindowTitle('Review')
self.show()

关于python - 如何设置像素图的最大宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27519017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com