绝对坐标的定位方式需要为每一个控件设计大小和位置,修改布局时十分繁琐,而且调整容器尺寸时控件无法对应改变。

幸运的是 wxPython 的布局管理器 Sizer 能对容器中的控件进行更优雅的布局管理,随着容器尺寸的变化自动计算控件最优化的大小和位置。

因此关于界面布局,更方便的是用 Sizer。

在 wxPython 中定义的 Sizer 主要有 wx.BoxSizer,wx.StaticBoxSizer,wx.GridSizer,wx.FlexGridSizer 和 wx.GridBagSizer 这几种,

它们都继承于 Wx.Sizer 类,并在此之上各自具有管理窗口布局的规则。

wx.BoxSizer 的布局方向分为横向和纵向两种,并且可以在横向或纵向方向上嵌套包含子 Sizer 的布局。此处如目标效果图所示,将 GUI 界面整体布局嵌套为三层: