Seite 1 von 1

[gelöst] FramelessWindowHint

Verfasst: 12. Juni 2006 12:55
von Sym
Hallo,

ich erbe von einem QWidget. Im Konstruktor rufe ich unter anderem setGeometry(...) und setWindowFlags(Qt::FramelessWindowHint).

Leider ist nach dem FramelessWindowHint die Position falsch. Lasse ich die Zeile weg, besitzt das Widget zwar wieder einen Rahmen, ist allerdings an der richtigen Stelle.

Ich nutze MSVC2005 und Qt4.1.3.

Hat jemand einen Tip?

Verfasst: 12. Juni 2006 13:12
von FlorianBecker
Hast du schonmal versucht die Reihenfolge der Aufrufe zu ändern?

Verfasst: 12. Juni 2006 13:20
von Sym
FlorianBecker hat geschrieben:Hast du schonmal versucht die Reihenfolge der Aufrufe zu ändern?
Vielen Dank, daran lag es. Allerdings ist mir der Grund nicht klar.

Verfasst: 12. Juni 2006 13:23
von FlorianBecker
Also ich würde jetzt einmal folgendes behaupten:
Mit setGeometry wird die Position unter Berücksichtigung der Fensterdekoration gesetzt. Bei 0,0 sitzt der Anfang der Titelleite also auf 0,0 und danach entfernst du die Titelleiste.

Wenn du nun zuerst die Titelleiste entfernst, wird diese nicht mehr berücksichtigt und mit dem Widget auf 0,0 gesetzt.

Erklärt das dein Problem?

Verfasst: 12. Juni 2006 13:31
von Sym
Ja, genau das habe ich mir gedacht. Deshalb habe ich erst die Geometrie gesetzt und dann das Fenster entfernt.

Allerdings funktioniert es genau anders herum. ;)

Naja, es klappt. Trotzdem wurmt es mich immer, wenn ich den Grund nicht nachvollziehen kann.