Aktivieren von Schwenken und Zoomen in ein QGraphicsView

Bin ich mit python und dem Qt Designer zu implementieren laden von tiff-Bildern und zum aktivieren von Schwenken und Zoomen auf einige Maus-Ereignis (Rad - zoom, drücken Sie auf Rad - pan).

Ich war auf der Suche in einigen Optionen und Klassen, Arbeit mit Bildern etc, und so weit ich gefunden habe:

QGraphicsScene, QImage, QGraphicsView

Ich habe drei Klassen (nur Prüfung)

  1. ViewerDemo, die QGraphicsView element:

        """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))
  2. MyForm Klasse, das ist QDialog, wo ich Anrufe-Klasse ViewerDemo, lade Bild, und legen Sie das Bild in QGraphicsView

        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) ist nur, wo die Anwendung ausgeführt wird:

    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_())

Fand ich wie etwas zu tun, auf die Maus klicken (Links und Rad klicken), drucken pixel-Koordinaten (ich brauche das, um die Koordinaten in das Koordinatensystem des Bildes, WGS84, zum Beispiel).

Was ich brauche, mehr, ist, wie zoom-Bild (Rad oder doppelklicken Sie, was auch immer) und pan-Bild (halten der linken Maustaste oder mit Rad).

Oder, gibt es eine bessere Qt-Klassen, dies zu tun, und einige besser Weg
Können Sie mir bitte helfen?

Dies ist, was ich bisher mit diesem code

Aktivieren von Schwenken und Zoomen in ein QGraphicsView

InformationsquelleAutor milutinke | 2016-02-19
Schreibe einen Kommentar