Victo

我的网络笔记本,用于收藏和总结一些知识。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

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就是表示将控件进行某个方向的对齐。

2 代码示例

# 左半窗
sizer_v = wx.BoxSizer(wx.VERTICAL)
sizer_h = wx.BoxSizer(wx.HORIZONTAL)

txt_static = wx.StaticText(self.spw_left, label='请选择工程:')
sizer_h.Add(txt_static, flag=wx.EXPAND | wx.LEFT, border=15)

self.lb_projects = wx.Choice(self.spw_left, -1, (200, 300), (200, 40), ['TEST1', 'TEST2', 'TEST3'])
self.lb_projects.Bind(wx.EVT_CHOICE, self._on_choice_projects)
sizer_h.Add(self.lb_projects, 1, flag=wx.EXPAND | wx.ALL, border=10)  # 这里面参数1表示宽度比例,与其他控件共同决定
sizer_v.Add(sizer_h, flag=wx.EXPAND | wx.ALL)

nb_main = wx.Notebook(self.spw_left)
nb_main.AddPage(TabPanel1(nb_main), "参数查询")
nb_main.AddPage(TabPanel2(nb_main), "截图对比工具")
nb_main.AddPage(TabPanel3(nb_main), "Panel3")
sizer_v.Add(nb_main, 1, flag=wx.EXPAND | wx.ALL)
self.spw_left.SetSizer(sizer_v)

 

posted on 2019-09-17 20:12  VictoKu  阅读(1677)  评论(0编辑  收藏  举报