wxPython使用boxSizer布局的时候,空间之间加边距,设置border的边框宽度来加边距

1 函数原型



sizer = wx.BoxSizer( integer orient )


其中的方向(orient)可以是 wx.VERTICAL(垂直) 或 wx.HORIZONTAL(水平)。

将构件加入 wx.BoxSizer 要使用Add() 方法。为了理解,我们来看一下它的参数。



Add( wx.Window window, integer proportion=0, integer flag=0, integer border=0 )


(1)window 就是一个控件名

(2) proportion 参数定义了在定义的方向上构件改变的比例,与其他控件配合发挥作用。假设我们有三个按纽,它们的proportion 属性分别为0、1和2。它们被加入一个水平的 wx.BoxSizer。proportion 参数为 0 的按纽根本不发生变化。而这个参数值为 2 的按纽在水平方向改变的程序将是参数值为 1 的那个按纽的两倍。

(3)flag 参数可以更深入的设置构件的属性。我们可以控制构件之间的边框。我们可以在构件之间增加一些空白象素。在要使用边框的地方我们需要定义边界。我们可以使用 | 符号来连接它们。比如wx.LEFT | wx.BOTTOM 。flag参数的值可以是:

* wx.LEFT

* wx.RIGHT

* wx.BOTTOM

* wx.TOP

* wx.ALL

如果我们使用 wx.EXPAND 标识,我们的构件将占据所有分配给它的空间。最后,我们还可以定义构件的对齐方式。有以下几种:

* wx.ALIGN_LEFT

* wx.ALIGN_RIGHT

* wx.ALIGN_TOP

* wx.ALIGN_BOTTOM

* wx.ALIGN_CENTER_VERTICAL

* wx.ALIGN_CENTER_HORIZONTAL

* wx.ALIGN_CENTER

 (4)结合border来发挥flag中指定方向的边框宽度。结合起来就好理解了,例如:flag=wx.LEFT | WX.TOP, border=35,这两个参数结合起来的含义就是控件的左边和上边分别预留35像素的空白。另外,flag加上wx.ALIGN_XXX就是表示将控件进行某个方向的对齐



# 控件上方留 5像素的空白区域(相当于 margin 或 padding)
boxSizer.Add(bottomPanel,2, flag=wx.EXPAND | wx.TOP , border=5)