2016-05-20 11 views
0

Dies ist eine Frage über wxBoxSizer. Ich implementiere ein benutzerdefiniertes wxWidget wie ein reduzierbares Fenster.wxWidget: Wie ändert sich die Größe des übergeordneten Sizer entsprechend der Größe der Kindersizer?

Das Problem ist: Ich habe einen WxBoxSizer (Sizer1), und ich füge einen anderen WxBoxSizer (Sizer2) als Kind hinzu. Wenn ich die Größe von Sizer2 ändere, wie kann ich Sizer1 seine Größe automatisch oder manuell aktualisieren lassen?

enter image description here

habe ich versucht Fit() und Layout-() auf Sizer1 anrufen, nachdem ich SetSize() auf Sizer2 nennen, aber es die Größe nicht für Sizer1 ändern.

Bitte helfen, danke!

Antwort

1

Das Layout in wxWidgets funktioniert immer von oben nach unten und das Ändern der Größe eines Unterfensters oder Sub-Sizers ändert niemals die Größe des umgebenden Fensters. Wenn Sie möchten, dass dies geschieht, rufen Sie Fit() im übergeordneten Fenster, um es zu sagen, die so groß wie erforderlich für seine untergeordneten Elemente werden soll. Beachten Sie, dass der Aufruf auf dem Panel immer noch nicht ausreicht, Sie müssen es auf der obersten Ebene wxFrame oder wxDialog selbst tun, es sei denn, Sie haben etwas freien Platz darin, der verwendet werden kann, um die zunehmende Panelgröße unterzubringen.

+0

Vielen Dank! – laishiekai

2

wxBoxSizer1 belegt bereits das gesamte Panel. Wenn Sie also die Größe des Panels nicht ändern, wird die Größe des wxBoxSizer1 nicht geändert. Möglicherweise möchten Sie eine andere Größe als Haupt-Sizer wie wxFlexGridSizer versuchen. Hier haben Sie mehr Möglichkeiten zur präzisen Steuerung.

+0

Vielen Dank! – laishiekai

Verwandte Themen