Seite 1 von 1

PyQt - Probleme beim Auslesen von Bildkoordinaten (SVG)

Verfasst: Montag 10. November 2008, 12:14
von kompensator
Hallo,
ich möchte gerne mit einem Graphen interagieren können, der im SVG-Format vorliegt. Letztendlich möchte ich gerne einen oder mehrere Knoten des Graphen durch anklicken selektieren können.
Zum Darstellen der SVG-Datei benutze ich momentan Eine QScrollArea die wiederum ein QLabel mit dem QImage beinhaltet.
Soweit so gut - wenn ich jetzt allerdings die Mauskoordinaten auslesen möchte, verändern sich diese wenn ich die Scrollbars benutze. Da der Graph sehr groß ist bin brauche ich die Scrollbars um vernünftig mit dem Bild arbeiten zu können.
Das MousePressEvent sieht momentan so aus:

Code: Alles auswählen

def mousePressEvent(self, event):
        currentPos = QPoint(event.pos())
        print str(currentPos.x()) + ", " + str(currentPos.y())
Wie kann ich auf die eigentlichen (statischen) Bildkoordinaten zugreifen? Ich arbeite noch nicht sehr lange mit Python und es kann durchaus sein dass ich etwas wichtiges übersehen habe.
Vielen Dank schonmal im vorraus - ich freue mich über Tipps und konstruktive Kritik!

Verfasst: Montag 10. November 2008, 12:20
von burli
Probier es doch mal mit einem QGraphicsView. Der ist genau für sowas gedacht.

Verfasst: Montag 10. November 2008, 15:52
von kompensator
Danke! Erst war zwar alles noch beim alten, aber dann hab ich mir eine eigene Scene abgeleitet und nutze dort beim mousePressEvent scenePos :)

Jau, mit Python und insbesondere mit PyQt zu arbeiten ist für jemanden der aus der Java-ecke kommt und entsprechend dokumentationsverwöhnt ist nicht besonders einfach ;)

Danke nochmal!

Verfasst: Montag 10. November 2008, 17:56
von name
kompensator hat geschrieben:Danke! Erst war zwar alles noch beim alten, aber dann hab ich mir eine eigene Scene abgeleitet und nutze dort beim mousePressEvent scenePos :)

Jau, mit Python und insbesondere mit PyQt zu arbeiten ist für jemanden der aus der Java-ecke kommt und entsprechend dokumentationsverwöhnt ist nicht besonders einfach ;)

Danke nochmal!
Naja wenn man kein Problem hat C++ zu lesen gehts scho.