绝对坐标的定位方式需要为每一个控件设计大小和位置,修改布局时十分繁琐,而且调整容器尺寸时控件无法对应改变。
幸运的是 wxPython 的布局管理器 Sizer 能对容器中的控件进行更优雅的布局管理,随着容器尺寸的变化自动计算控件最优化的大小和位置。
因此关于界面布局,更方便的是用 Sizer。
在 wxPython 中定义的 Sizer 主要有 wx.BoxSizer,wx.StaticBoxSizer,wx.GridSizer,wx.FlexGridSizer 和 wx.GridBagSizer 这几种,
它们都继承于 Wx.Sizer 类,并在此之上各自具有管理窗口布局的规则。
wx.BoxSizer 的布局方向分为横向和纵向两种,并且可以在横向或纵向方向上嵌套包含子 Sizer 的布局。此处如目标效果图所示,将 GUI 界面整体布局嵌套为三层:
