GUI布局器-BoxSizer
上一节说了在一个wxPython的Frame上可以添加标签、文本框、以及按钮等控件。但这些控件的添加都是按照绝对地址设计的,如果顶级窗口大小发生变化则布局就变乱。因此引入了布局器。布局器就是将控件添加到布局器中,然后由布局器来设计控件的布局格式。布局器有很多,这里先介绍一下BoxSizer。
- BoxSizer
BoxSizer是一个水平或者垂直的布局器。布局器可以嵌套,即在一个BoxSizer中可以嵌套另外一个BoxSizer。例如在一个垂直的BoxSizer中添加一个水平的BoxSizer。BoxSizer可以保证其内不的控件从左到右或者从上到下都在一条线上。这样就能规整的布局控件了。
添加方式是先建立一个boxSizer;然后使用BoxSizer的add方法添加控件到BoxSizer中。其中Add方法的proportion 只对BoxSizer方式有作用,表示控件在BoxSizer中占用空间大小的比例:
0:表示这个控件大小是按照这个控件最小大小进行分配的,并且不会随着BoxSizer大小发生变化;
非0:表示这个控件在BoxSizer中占用资源的比例:如有3个组件各自的值为1,2,3则这三个组件占用的BoxSizer空间资源的比较就1/6,2/6,3/6。如果3个组件的值各位0,1,2。则3个控件各自占用的空间比例就是第一个按照自己控件最小值占用空间并且不会随着BoxSizer大小变化而发生变化。另外两个组件占用的空间就将出去第一个控件占用后剩下的空间分别占用1/3,2/3.非0值会随着BoxSizer空间大小发生变化而变化但是各自占用的比例不发生变化。
布局器的使用代码如下图:
2-1
2-2