Hallo,
ich habe mit dem Designer ein Fenster erstellt und alles schön in Layouts gepackt. Wenn ich das Programm starte, dann wird die Größe auch sauber angepasst.
In dem Layout, dass ich mit dem Designer angelegt habe, gibt es ein QFrame, in das ich zur Laufzeit mit einem QGridLayout Elemente dynamisch reinpacken will. Der Benutzer kann aus einer ComboBox auswählen, welche Widgets er sehen will und die werden dann in das GridLayout rein gepackt.
Soweit so gut, dass Problem ist, dass das Fentster dabei nicht "mitwächst". Sobald ich anfange es von Hand zu "resizen" springt es auf die mindest Größe damit alles rein passt. Schön wäre es allerdings, wenn er das von alleine machen würde.
Bisher konnte ich dafür kein passendes Signal bzw. passende Methode finden.
Ich hoffe ich konnte mein Problem einigermaßen verständlich beschreiben. Ansonsten fragt einfach nochmal nach!
Habt ihr eine Idee wie ich das Problem lösen kann?
Vielen Danke schonmal!
[qt4] Fenstergröße automatisch anpassen?
Code: Alles auswählen
adjustSize()also bei mir funzt das super...
hilft wohl nur noch Code.....
Ach ja.... evtl musst es 2-3 mal aufrufen( war glaube ich mal bei mir so das es beim ersten mal nicht immer gepasst hat-ka welche Version das war....)
hilft wohl nur noch Code.....
Ach ja.... evtl musst es 2-3 mal aufrufen( war glaube ich mal bei mir so das es beim ersten mal nicht immer gepasst hat-ka welche Version das war....)
Adjusts the size of the widget to fit the contents.
Uses sizeHint() if valid (i.e if the size hint's width and height are >= 0); otherwise sets the size to the children rectangle that covers all child widgets (the union of all child widget rectangles).
For windows, the screen size is also taken into account, and if the sizeHint() is less than (200, 100) and the size policy is expanding, the window is made to be at least (200, 100).
See also sizeHint() and childrenRect().
Hallo und erstmal sorry für die späte Antwort!
Das Projekt ist leider etwas größer, deswegen ist es nicht so einfach aussagekräftigen Code in einem vernünftigen Umfang zu posten.
Daher habe ich versucht mal ein kleines Testprogramm zu schreiben um den Fehler zu "simulieren". Das erstaunliche: Bei dem Testprogramm hat alles völlig automatisch so funktioniert wie ich mir das vorgestellt hätte. Also auch ganz ohne einem Aufruf von adjustSize() oder so.
Es gibt nur einen Unterschied: Das Testprogramm war ein stand-alone Programm und das original läuft als QMdiSubWindow in einer QMdiArea. Genau hier scheint das Problem zu liegen, wenn ich das original Programm/widget als stand-alone Program laufen lasse, dann funktioniert es genauso Problemlos wie mein Testprogramm. Packe ich es wieder in die QMdiArea, dann passt es die Größe nicht mehr automatisch an.
Hat hierzu noch jemand eine Idee? Gibt es vielleicht etwas in der MdiArea, dass das resizen verhindert/begrenzt und das ich vielleicht "abschalten" muss?
Danke!
Das Projekt ist leider etwas größer, deswegen ist es nicht so einfach aussagekräftigen Code in einem vernünftigen Umfang zu posten.
Daher habe ich versucht mal ein kleines Testprogramm zu schreiben um den Fehler zu "simulieren". Das erstaunliche: Bei dem Testprogramm hat alles völlig automatisch so funktioniert wie ich mir das vorgestellt hätte. Also auch ganz ohne einem Aufruf von adjustSize() oder so.
Es gibt nur einen Unterschied: Das Testprogramm war ein stand-alone Programm und das original läuft als QMdiSubWindow in einer QMdiArea. Genau hier scheint das Problem zu liegen, wenn ich das original Programm/widget als stand-alone Program laufen lasse, dann funktioniert es genauso Problemlos wie mein Testprogramm. Packe ich es wieder in die QMdiArea, dann passt es die Größe nicht mehr automatisch an.
Hat hierzu noch jemand eine Idee? Gibt es vielleicht etwas in der MdiArea, dass das resizen verhindert/begrenzt und das ich vielleicht "abschalten" muss?
Danke!