Frage

Dies ist die Hierarchie von Widgets ich habe:

Rahmen> wxBoxSizer> wxPanel> wxBoxSizer> wxFlexGridSizer (2 Spalten, Zeilen 9), mit verschiedenen Formularfeldern und Tasten innen.

Der erste BoxSizer ist die Platte in platzieren, und das zweite ist ein Rand um das Flexgrid zu machen.

Alles sieht gut aus, und der Rahmen richtig expandieren, wenn das Fenster vergrößert wird, aber es kann auch so gut wie nichts geändert werden, alle Formularelemente versteckt.

Wie erzwinge ich die Mindestgröße für das Fenster zu dem von der FlexGridSizer standardmäßig vorgeschlagen (alle Formularelemente sichtbar sind und deren minimal möglichen Größen)?

War es hilfreich?

Lösung

die setMinSize () -Methode auf dem Rahmen Mit einer Mindestgröße festgelegt wird eine Grenze für den kleinsten Bereich des Rahmens festgelegt (es getestet). Einmal eingestellt, wird WxWidgets der Rahmen nicht zulassen, kleiner als der Wert bemessen sein, angegeben.

Ich würde den Wert wie folgt festgelegt. Im Konstruktor gesetzt, alle Elemente des Rahmens auf. Am Ende, nach dem Aufruf der Layout() Methode zum Einrichten aller Sizer und solche, rufen Sie die GetSize(int *w, int *h) Methode, um die x- und y-Größe des Rahmens an dem Standard-Layout zu erhalten. Verwenden Sie diese Werte die SetMinSize() Methode aufzurufen, die Standardgröße als das Minimum für den Rahmen zu setzen. Dies wird berücksichtigt, alle verschiedenen Polsterungen und Grenzen und diese durch den Rahmen und die darin enthaltenen Elemente aufgebaut.

Andere Tipps

Wahrscheinlich viel zu spät, aber die hier gegebenen Antworten sind unnötig kompliziert, man muss nur SetSizerAndFit(sizer) sowohl anrufen, um den Sizer mit dem Rahmen verbinden, legen Sie die Anfangsgröße und auch diese Größe als minimal akzeptable Größe eingestellt.

In wxPerl, dagorym 's Antwort kann kompakt geschrieben werden als $self->SetMinSize($self->GetSize()); nach einem Aufruf Layout().

Ich würde versuchen, wxFrame-> setMinSize (wxSize) mit was auch immer wxFlexGridSizer-> getMinSize () sollte zurückgibt, arbeiten, aber nicht getestet. Sie müssen beachten, was getMinSize sagt etwa an Fenstergröße coverting, bevor er es erwarte ich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top