nt)
orientation参数,代表控件排列方式,wx.VERTICAL 垂直排列 ,wx.HORIZONTAL 水平排列
形象一点就是:前者是三 , 横向3个1, 后者是111,纵向3个1
2、sizer.Add(wx.Window window, integer proportion=0, integer flag = 0, integer border = 0)
window 参数:代表要添加的控件。
roportion参数:所添加控件在定义的定位方式所代表方向上,占据的空间比例。
假设有三个按钮,它们的比例值分别为0、1和2,它们都已添加到一个宽度为30的水平排列wx.BoxSizer,起始宽度都是10。
当sizer的宽度从30变成60时,按钮1的宽度保持不变,仍然是10,按钮2的宽度约为(10+(60-30)*1/(1+2))=30 ,按钮2约为20。
不太严谨说按钮2占有增量部分1/3,按钮3占有增量部分2/3。
border参数:控制所添加控件的边距,就是在部件之间添加一些像素的空白。
border参数与flag参数结合生效,为了应用边框参数,需要在flag参数中定义哪一边使用边框,譬如flag=wx.RIGHT代表右边距为border宽。
flag参数:
如前文所述,flag参数与border参数结合指定边距宽度,包括以下选项:
wx.LEFT ,左边距
wx.RIGHT,右边距
wx.BOTTOM,底边距
wx.TOP,上边距
wx.ALL,上下左右四个边距
可以通过竖线 “|”操作符(operator),比如wx.LEFT | wx.BOTTOM,来联合使用这些标志。
此外,flag参数还可以与proportion参数结合,指定控件本身的对齐(排列)方式,包括以下选项:
wx.ALIGN_LEFT 左边固定,右边扩展(当proportion >0 时,下同)
wx.ALIGN_RIGHT 右边不动
wx.ALIGN_TOP
wx.ALIGN_BOTTOM
wx.ALIGN_CENTER_VERTICAL
wx.ALIGN_CENTER_HORIZONTAL
wx.ALIGN_CENTER
此外,flag参数可以使用wx.EXPAND标志,那么所添加控件将占有sizer定位方向的方向上所有可用的空间。
最后总结一下,很重要:
1、wx.LEFT是指控件边框左边是否留空,该常量的定义在_core.py源文件中,
用法:bsizer_top.Add(self.st_tips,proportion=0,flag=wx.LEFT, border = 5 )
2、 wx.ALIGN_LEFT是控件本身居左对齐,该常量定义也在_core.py源文件中。
用法:bsizer_top.Add(self.st_tips,proportion=0,flag=wx.ALIGN_LEFT|wx.LEFT, border = 5 )
3、wx.TE_LEFT是控件光标居左对齐,该常量定义在_controls.py源文件中。
用法:self.text_ctrl_1 = wx.TextCtrl(self, wx.ID_ANY, "", style= wx.TE_LEFT )
三个写法不一样,功能也不同,但定义值都有,一旦写错很难发现,但会出现奇奇怪怪的问题。
以上。