一种比通过pos参数布置在pannel画板上更智能的布局方式---sizer(尺寸器)。尺寸器会管理组件的尺寸,只要将部件添加到尺寸器上,再加上一些布局参数,就可以让尺寸器自己去管理父组件的尺寸。上述代码中,首先设置了增加背景控件(wx.Panel),并创建了一个wx.BoxSizer,它带有一个决定其是水平还是垂直的参数(wx.HORIZONTAL或者wx.VERTICAL),默认为水平;然后使用Add()方法将控件加入sizer;最后使用面板的SetSizer()方法设定它的尺寸器。
1.2 Add()方法的语法格式如下:Box.Add(control, proportion, flag, border)
参数说明:■ control:要添加的控件。■ proportion:所添加控件在定义的定位方式所代表方向上占据的空间比例。如果有三个按钮,它们的比例值分别为0、1和2,它们都已添加到一个宽度为30的水平排列wx.BoxSizer,起始宽度都是10。当sizer的宽度从30变成60时,按钮1的宽度保持不变,仍然是10,按钮2的宽度约为(10+(60-30)*1/(1+2))=20,按钮3约为30。■ flag:flag参数与border参数结合使用可以指定边距宽度,包括以下选项:● wx.LEFT:左边距● wx.RIGHT:右边距● wx.BOTTOM:底边距● wx.TOP:上边距● wx.ALL:上下左右4个边距
可以通过竖线“|”操作符(operator),来联合使用这些标志,比如wx.LEFT | wx.BOTTOM。此外,flag参数还可以与proportion参数结合,指定控件本身的对齐(排列)方式,包括以下选项:
● wx.ALIGN_LEFT:左边对齐
● wx.ALIGN_RIGHT:右边对齐
● wx.ALIGN_TOP:顶部对齐
● wx.ALIGN_BOTTOM:底边对齐
● wx.ALIGN_CENTER_VERTICAL:垂直对齐
● wx.ALIGN_CENTER_HORIZONTAL:水平对齐
● wx.ALIGN_CENTER:居中对齐
● wx.EXPAND:所添加控件将占有sizer定位方向上所有可用的空间
■ boder:控制所添加控件的边距,就是在部件之间添加一些像素的空白。
2.1绑定事件 ,将函数绑定到所涉及事件可能发生的控件上,当事件发生时,函数就会被调用。利用控件Bind()方法可以将事件处理函数绑定到给定的事件上,代码:bt_confirm.Bind(wx.EVT_BUTTON,OnclickSubmit)
参数说明:■ wx.EVT_BUTTON:事件类型为按钮类型。在wxPython中有很多wx.EVT_开头的事件类型,例如,类型wx.EVT_MOTION产生于用户移动鼠标,类型wx.ENTER_WINDOW和wx.LEAVE_WINDOW产生于当鼠标进入或离开一个窗口控件,类型wx.EVT_MOUSEWHEEL被绑定到鼠标滚轮的活动。■ OnclickSubmit:方法名。事件发生时执行该方法。
在上面例子增加按钮的事件处理: