Hallo
Wenn ich ein Widget in einem Skin-Screen mit <widget Name="testwidget" pos="10,10"...> positioniere, dann kann ich im Code diese Position ja mit
self["testwidget"].instance.position().x() und
self["testwidget"].instance.position().y() abfragen.
Allerdings ist das nur dann auch die absolute Position im Gesamt-Bildschirm (+ Screen top, left), wenn man im Skin-Screen wfNoBorder verwendet.
<screen Name="testScreen" pos="200,200" flags="wfNoBorder" …>
Lasse ich das wfNoBorder jedoch weg, verschiebt sich die absolute Position des Widgets im Gesamt-Bildschirm immer um noch die Titelhöhe des Screens (für y) nach unten und eine evtl. Rahmenbreite des Screens (für x) nach rechts.
Das hängt ja damit zusammen, dass sich die absolute Screen-Position damit auch verschiebt.
Bei <screen Name="testScreen" pos="200,200" flags="wfNoBorder" …>
ist self.instance.position().x() = 200 und self.instance.position().y() = 200
Bei <screen Name="testScreen" pos="0,0" …> (ohne wfNoBorder)
ist z.B. self.instance.position().x() = 183 und self.instance.position().y() = 155
Damit könnte man den Versatz des Widgets ja berechnen, allerdings müsste ich im Code dann wissen, welche Original-Position im Skin (200, 200) ursprünglich angegeben war.
Nun die Frage:
- kann man auch die absolute Position eines Widgets im Gesamt-Bildschirm abfragen/ermitteln ?
(self["testwidget"].instance.position() ist ja nur die relative Position innerhalb des Screens)
- kann man irgendwie die Originalscreen-Position des Screens aus dem Skin abfragen, damit man dann den Versatz berechnen kann ?