• wxPython之BoxSizer


    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)
  • 相关阅读:
    Cocos2d-X中的ProgressTimer
    具体解释Android中AsyncTask的使用
    C++中使用Json的方法
    linux包之procps之pmap命令
    java实现第九届蓝桥杯最大乘积
    java实现第九届蓝桥杯最大乘积
    java实现第九届蓝桥杯三角形面积
    java实现第九届蓝桥杯三角形面积
    java实现第四届蓝桥杯阶乘位数
    java实现第四届蓝桥杯阶乘位数
  • 原文地址:https://www.cnblogs.com/kuliuheng/p/11536686.html
Copyright © 2020-2023  润新知