Widget Koordinatensysteme

Alles rund um die Programmierung mit Qt
Antworten
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

Widget Koordinatensysteme

Beitrag 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.
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
ganwell
Beiträge: 13
Registriert: 8. Januar 2009 18:50
Wohnort: Luzern, Schweiz
Kontaktdaten:

Re: Widget Koordinatensysteme

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