Koordinatentransformation View -> Scene

Alles rund um die Programmierung mit Qt
Antworten
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Koordinatentransformation View -> Scene

Beitrag 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
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag 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
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag 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 :(
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag 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? :?
Antworten