Seite 1 von 1

Widget Koordinatensysteme

Verfasst: 3. Januar 2009 16:48
von qtNiko
hi,

ich kann in der Doku nichts über die Koordinatensysteme der Widgets finden.
Ich möchte die Mouseposition, die in Koordinaten des Hauptfensters vorliegen, in ein Koordinatensystem umwandeln, das auf ein spezielles Widget, z.B. ein QLabel, bezogen ist, d.h. wenn ich in die linke, obere Ecke des QLabels klicke, möchte ich (0, 0) erhalten.

Ein Tipp aus diesem Forum sagte, dafür gebe es schöne Funktionen. OK, es gibt mapFrom(), mapFromParent() und mapFromGlobal(). Letzteres scheidet aus. mapFromParent() liefert mir anstatt (0, 0) die Koordinate (-290, 0). mapFrom() liefert (-290, -27). Die Werte 290 und 27 entsprechen der linken bzw. oberen Kante des QLabel im Hauptfenster, aber was soll das?

Natürlich kann ich einfach auf alle Koord. entsprechende Offsets addieren, und dann ist alles ok. Aber das geht mir irgendwie gegen den Strich. Wenn es schon diese Funktionen gibt, warum liefern die Positionen, die ich dann doch erst wieder korrigieren muss? Ich würde gern verstehen, wie die Koordinatensyteme definiert sind.

Re: Widget Koordinatensysteme

Verfasst: 9. Januar 2009 16:22
von ganwell
qtNiko hat geschrieben:hi,
ich kann in der Doku nichts über die Koordinatensysteme der Widgets finden.
Hier ist ein guter Text über Koordinaten.

http://doc.trolltech.com/4.5/coordsys.html
The QPaintDevice class is the base class of objects that can be painted: Its drawing capabilities are inherited by the QWidget, QPixmap, QPicture, QImage, and QPrinter classes.
Damit gilt das auch für Widgets.

Gruss
Ganwell