如何使用pyqt4加载和显示重新缩放的图像

时间:2012-12-12 20:21:16

标签: python qt4 pyqt4

类似的问题被问到here,但没有说明如何重新缩放图像。到目前为止,我只找到QPixmap pyQT4pyQt4找到C++ specs。但后者似乎没有任何QPixmap的参考。

问题:有没有人知道如何根据第一个链接中的代码显示完整图像的重新缩放版本,和/或我可以找到{{1}}规格的位置?

1 个答案:

答案 0 :(得分:3)

您可以使用QPixmap.scaledToHeightQPixmap.scaledToWidth方法:

import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
window.setGeometry(0, 0, 400, 200)
pic = QtGui.QLabel(window)
pic.setGeometry(10, 10, 400, 200)
pixmap = QtGui.QPixmap(FILENAME)
pixmap = pixmap.scaledToHeight(200)
pic.setPixmap(pixmap)

window.show()
sys.exit(app.exec_())    

您可以找到documentation on PyQT classes (including QPixmap) here

有时当我懒惰并且不想阅读文档时,我会使用它:

def describe(obj):
    for key in dir(obj):
        try:
            val = getattr(obj, key)
        except AttributeError:
            continue
        if callable(val):
            help(val)
        else:
            print('{k} => {v}'.format(k = key, v = val))
        print('-'*80)

pixmap = QtGui.QPixmap(FILENAME)
describe(pixmap)

打印有关传递给describe的对象的所有属性的大量输出。在这种情况下,您可以通过搜索字符串-> QPixmap找到相关方法,因为这些是返回新QPixmap的方法。这就是我找到scaledToHeightscaledToWidth的方式。