Seite 1 von 1

Koordinatentransformation View -> Scene

Verfasst: 24. März 2010 10:52
von mathies
Hallo,

gibt es beim QGraphicsView (oder allgemein) eine Funktion die mir einen Koordinatenpunkt des QGraphicsViews in den entsprechenden "darunterliegenden" QGraphicsScene-Koordinatenpunkt umrechnet?

Alles was ich gefunden habe ist mapToScene() aber das ist leider nur für den Viewport und gibt demzufolge keine sinnvollen Werte aus.

Grüße

Verfasst: 24. März 2010 11:03
von jerry42
Hallo,

mapTo oder mapToParent hilft Dir auch nicht?

http://doc.trolltech.com/4.6/qwidget.html#mapToParent
http://doc.trolltech.com/4.6/qwidget.html#mapTo

da ist zumindest nicht direkt die Rede vom Viewport.
Vielleicht hilft's.

Gruß jerry42

Verfasst: 24. März 2010 11:15
von mathies
Hmm,

leider nicht. Die Scene kannste ja im View bewegen und auch zoomen usw., Was ich brauche ist der Scene-Punkt der unter einer bestimmten Koordinate des Views liegt. Sollte mit dem Parent und dem Viewport nix zu tun haben.

Gruß

Edit:
Das Problem was ich mit mapToScene habe ist, dass sich die Punkte ändern wenn ich Zoome (scale()) und das kann nicht sein. Wenn ich einen Punkt der Scene im Fokus habe und dann hineinzoome, also den gleichen Punkt weiterhin im Fokus habe, dann können sich nicht auf einmal die "angeblichen" Scenekoordinaten dafür ändern :?:
Habe jetzt zusätzlich das MouseEvent im View überschrieben (in der Scene hilft es mir nix auch wenn ich dort die Scenekoordinate hätte, da ich die Koordinate im Bezug auf den Mittelpunkt des Views brauche) und dort mapToScene gemacht. Ich bekomme immer nur die View-Koordinaten :(

Verfasst: 24. März 2010 15:56
von mathies
Meine Scene ist 1000x1000 und mein View hat die Größe von 500x500. Ich kann die Scene super per drag and drop oder über die Scrollbars bewegen, versuche ich aber eine View-Koordinate zu einer Scene-Koordinate zu transformieren über mapToScene() bekomme ich nur Werte zwischen 0 und 500 (also die entsprechende View-Koordinate). Da geht doch was grundlegend schief, oder? :?