PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Qt-WidgetFlags



Boron
16-10-2002, 12:13
Ich schaffe es einfach nicht bei einem KDE/Qt-Programm von mir die Titelzeile meinen Wünschen ensprechend anzupassen.

Wenn ich dem Konstruktor des Widgets die WidgetFlags in dieser weise übergebe
Santafu* santafu = new Santafu( 0, "Santafu", WStyle_Customize | WStyle_Title | WStyle_SysMenu | WStyle_Minimize);dann ändert sich nichts im Vergleich zum Standard.

Was ich erreichen möchte ist, dass der Button zum Maximieren nicht angezeigt wird. Was mache ich dabei falsch.

Ach noch was: Wie kann ich meinem Programm (genauer: dem "Hauptfenster") sagen, dass es nicht in der seiner Größe geändert werden kann.
Bisher habe ich einfach geschrieben this->setMaximumSize( this->sizeHint());
Das geht doch mit Sicherheit schöner. Über irgendein Flag vielleicht?

Gruß Boron

anda_skoa
16-10-2002, 14:31
Original geschrieben von Boron
Wenn ich dem Konstruktor des Widgets die WidgetFlags in dieser weise übergebe
Santafu* santafu = new Santafu( 0, "Santafu", WStyle_Customize | WStyle_Title | WStyle_SysMenu | WStyle_Minimize);dann ändert sich nichts im Vergleich zum Standard.


Probier mal im Konstruktor Code die WFlags auszulesen um zu sehen, ob deine gesetzt wurden.
Außerdem könntest du probieren mit clearWFlags() die momentanen Flags zu löschen und dann deine zu setzen.

Für Applikationen, die nur auf X11 laufen müssen, man spezielle WM Hints benutzen.
Unter KDE geht das über die KWin Klasse, die dann dem Windowmanager (muß nicht KWin sein) über spezielle NET WM Flags das gewünschten Aussehen mitteilt.

Du solltest dir aber bewußt sein, dass der WindowManager immer alles override kann, wenn er das "möchte".



Ach noch was: Wie kann ich meinem Programm (genauer: dem "Hauptfenster") sagen, dass es nicht in der seiner Größe geändert werden kann.
Bisher habe ich einfach geschrieben this->setMaximumSize( this->sizeHint());
Das geht doch mit Sicherheit schöner. Über irgendein Flag vielleicht?


Hmm, setFixed Size vielleicht, oder Maximum und Minium size gleichsetzen.
Und/oder die SizePolicy entsprechend setzen.

Ciao,
_