Window Größe soll "fixed" sein

Alles rund um die Programmierung mit Qt
Antworten
Mystique
Beiträge: 6
Registriert: 18. Juni 2006 20:55

Window Größe soll "fixed" sein

Beitrag von Mystique »

Hallo,

ich versuche nun schon ewig die Größe meines Mainwindows auf nicht veränderbar zu setzen, aber irgendwie scheint mir das Licht noch nicht aufgegangen zu sein wie das möglich ist.

Hat jemand ein paar Hints?
DarkWotan
Beiträge: 65
Registriert: 18. Mai 2006 10:03

Beitrag von DarkWotan »

Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Hmm,

dabei ist der Methodenname doch ideal ;)
setFixedSize(...)
DarkWotan
Beiträge: 65
Registriert: 18. Mai 2006 10:03

Beitrag von DarkWotan »

setFixedSize() legt aber zusätzlich zum Layout auch noch die neue Größe des Fensters fest, was unter Umständen unerwünscht sein kann.

MfG, Cedric
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Unter welchen Umständen?
DarkWotan
Beiträge: 65
Registriert: 18. Mai 2006 10:03

Beitrag von DarkWotan »

Sym hat geschrieben:Unter welchen Umständen?
Na z. B. könnte der Benutzer das Fenster noch in der Größe verändert haben wollen, bevor es `fixed' wird. Dabei erst noch die aktuelle Größe herauszufinden und dann setFixedSize() aufzurufen finde ich nicht elegant.

MfG, Cedric
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Man beachte doch nur mal die Doku.
void QWidget::setFixedSize ( const QSize & s )
Sets both the minimum and maximum sizes of the widget to s, thereby preventing it from ever growing or shrinking.
This will override the default size constraints set by QLayout.
Alternatively, if you want the widget to have a fixed size based on its contents, you can call QLayout::setSizeConstraint(QLayout::SetFixedSize);
Wichtig ist hierbei der letzte Satz. SetFixedSize mag interessant sein für Widgets innerhalb eines Dialogs, aber nie für den Dialog selbst. Damit der sich dem Inhalt anpassen kann, sei es durch dynamische Sprachumschaltung oder verstecken von Widgets, ist setSizeConstraint angesagt. Damit kann das Programm noch die Größe ändern, aber nicht der User per Maus.
Antworten