#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import PySide sys.modules['PyQt4'] = PySide # HACK for ImageQt from PySide import QtCore, QtGui import Image import ImageQt import ImageEnhance import time class TestWidget(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.scene = QtGui.QGraphicsScene() self.view = QtGui.QGraphicsView(self.scene) self.button = QtGui.QPushButton("Do test") layout = QtGui.QVBoxLayout() layout.addWidget(self.button) layout.addWidget(self.view) self.setLayout(layout) self.button.clicked.connect(self.do_test) def do_test(self): img = Image.open('image.png') enhancer = ImageEnhance.Brightness(img) for i in range(1, 8): img = enhancer.enhance(i) self.display_image(img) QtCore.QCoreApplication.processEvents() # let Qt do his work time.sleep(0.5) def display_image(self, img): self.scene.clear() w, h = img.size self.imgQ = ImageQt.ImageQt(img) # we need to hold reference to imgQ, or it will crash pixMap = QtGui.QPixmap.fromImage(self.imgQ) self.scene.addPixmap(pixMap) self.view.fitInView(QtCore.QRectF(0, 0, w, h), QtCore.Qt.KeepAspectRatio) self.scene.update() if __name__ == "__main__": app = QtGui.QApplication(sys.argv) widget = TestWidget() widget.resize(640, 480) widget.show() sys.exit(app.exec_())