Como habilitar Pan e Zoom em um QGraphicsView

Estou usando o python e o Qt Designer para implementar o carregamento de imagens tiff e ativar o Pan e o Zoom em algum evento do mouse (zoom de roda, pressionar roda - pan).

Eu estava olhando para algumas opções e classes que podem trabalhar com imagens, etc, e até agora eu encontrei:

QGraphicsScene, QImage, QGraphicsView

Eu tenho três classes (apenas testando)

ViewerDemo que temQGraphicsView elemento:

    """description of class"""
    # Form implementation generated from reading ui file 'GraphicsViewdemo.ui'
    try:
    _fromUtf8 = QtCore.QString.fromUtf8
    except AttributeError:
        def _fromUtf8(s):
            return s
        class Ui_Dialog(object):
            def setupUi(self, Dialog):
                Dialog.setObjectName(("Dialog"))
                Dialog.resize(500, 500)
            self.graphicsView = QtGui.QGraphicsView(Dialog)
            self.graphicsView.setGeometry(QtCore.QRect(0, 0, 500, 500))
            self.graphicsView.setObjectName(("graphicsView"))
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None,
QtGui.QApplication.UnicodeUTF8))

MyForm classe, isto éQDialog, onde eu chamo de classeViewerDemo, carregando Image e coloque a imagem emQGraphicsView

    import sys
    from ViewerDemo import *
    from PyQt4 import QtGui
    class MyForm(QtGui.QDialog):
        def __init__(self, url, parent=None):
            QtGui.QWidget.__init__(self, parent)


            self.ui = Ui_Dialog()
            self.ui.setupUi(self)
            self.scene = QtGui.QGraphicsScene(self)
           self.image = QtGui.QImage(url)
            pixmap= QtGui.QPixmap.fromImage(self.image)
            item=QtGui.QGraphicsPixmapItem(pixmap)
            self.scene.addItem(item)
            self.ui.graphicsView.setScene(self.scene)
            self.scale = 1
            QtCore.QObject.connect(self.scene, QtCore.SIGNAL('mousePressEvent()'),self.mousePressEvent)

    def mousePressEvent(self, event):
        print ('PRESSED : ',event.pos())

(3) é exatamente onde o aplicativo está sendo executado:

    from PyQt4 import QtGui, QtCore
    import sys
    from MyForm import MyForm
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        url = "D:/probaTiff"
        myapp = MyForm(url)
        myapp.show()
        sys.exit(app.exec_())

Eu descobri como fazer algo com o clique do mouse (clique esquerdo e roda), para imprimir coordenadas de pixel (vou precisar disso para obter as coordenadas no Sistema de Coordenadas da imagem WGS84, por exemplo).

O que eu preciso mais é como ampliar a imagem (roda ou clique duas vezes, o que for) e mover a imagem (mantendo o botão esquerdo do mouse ou pressionando a roda).

Ou, há algumas aulas de Qt melhores para fazer isso e alguma maneira melhor Você pode me ajudar, por favor?

Isto é o que eu tenho até agora com este código

questionAnswers(2)

yourAnswerToTheQuestion