Seite 1 von 1

Fixed Size Window mit minimaler Größe: wie?

Verfasst: 25. Juli 2010 12:37
von maikelmeyers
Hallo,

ich erzeuge in meinem Programm ein Main Window, welches natürlich ein Central Widget hat mit mehreren Label, Slidern und Eingabefeldern in einem QGridLayout. Ich will aber gern, dass das Main Window nicht resizeable und nur so groß ist, wie minimal nötig.

layout()->setSizeConstraint(QLayout::SetFixedSize); führt zwar zu einem fixed size window, aber leider zu groß, da sizeHint() ja die preferredSize liefert und nicht die minimumSize. Ich bekomm einfach nicht raus wie ich das Fenster mit Fixed Size genauso klein bekomme, als wenn ich es per Hand klein ziehen würde.

Weiß evtl. jemand Rat?
Danke.

Verfasst: 25. Juli 2010 15:27
von Nvidia
für die Widgets
setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum)
dann kriegt SizeHint() die minimale Größe und dann kannst du die Größe festsetzen.

Verfasst: 25. Juli 2010 17:29
von maikelmeyers
Danke. Muss man das für jedes Widget einzeln festlegen oder kann man das vielleicht Default-mäßig global einstellen, das jedes neu angelegte Widget QSizePolicy:Minimum hat. Evtl. nur durch vererben von QWidget oder?

Mir ist da auch noch was anderes komisches aufgefallen: Durch layout()->setSizeConstraint(QLayout::SetMinimumSize); müsste das Hauptfenster beim Erzeugen doch eigentlich die minimale Größe haben, auch wenn man es dann größer ziehen kann. Bei mir kommt das fast hin, aber komischerweise kann man es nach dem erzeugen immer noch ein Stück kleiner machen. Hab ich da was falsch verstanden mit SetMinimumSize?

Verfasst: 25. Juli 2010 18:36
von Nvidia
hm müsstest du ausprobieren.
Mir logisch erscheinen würde, dass wenn du dem MainWindow/CentralWidget das gibst, dass er alle seine Kind Objekte so klein macht wie er kann, aber das weiß ich nicht, müsstest du ausprobieren.