首页 > 编程 > Python > 正文

Python wxPython库Core组件BoxSizer用法示例

2020-02-15 22:54:15
字体:
来源:转载
供稿:网友

本文实例讲述了Python wxPython库Core组件BoxSizer用法。分享给大家供大家参考,具体如下:

wx.BoxSizer:

box = wx.BoxSizer(integer orient)

The orientation can be wx.VERTICAL or wx.HORIZONTAL

box.Add(wx.Window window, integer proportion=0, integer flag = 0, integer border = 0)

参数解读:

1、proportion:

proportion参数定义了构件在既定方向上所占空间的比例,是相对的,相对于其他组件
举个例子:我们有三个按钮,proportion的值分别是0,1,2。三个按钮被放置到水平方向的sizer当中,Button with proportion 0 will not change at all。但是, Button with proportion 2将会比the one with proportion 1大两倍在水平位置上。

# -*- coding:utf-8 -*-import wxclass Border(wx.Frame):  def __init__(self, parent, id, title):    wx.Frame.__init__(self, parent, id, 'www.jb51.net - BoxSizer', size=(350, 200))    panel = wx.Panel(self, -1,size=(350,200))    panel.SetBackgroundColour('white')    boxsizer1 = wx.BoxSizer(wx.VERTICAL)    btn1 = wx.Button(panel, -1, 'Botton1')    btn2 = wx.Button(panel, -1, 'Botton2')    btn3 = wx.Button(panel, -1, 'Botton3')    boxsizer1.Add(btn1, proportion=0, flag=wx.EXPAND, border=0)    boxsizer1.Add(btn2, proportion=1, flag=wx.ALL, border=0)    boxsizer1.Add(btn3, proportion=2, flag=wx.ALL, border=0)    self.SetSizer(boxsizer1)    self.Centre()    self.Show(True)app = wx.App()Border(None, -1, '')app.MainLoop()

运行结果:

通过这个例子可以观察出proportion参数的作用

2、flag:

flag参数可以使用 '|'来产生组合的多个flags。

flag参数定义了两个主要的行为:

第一个参数是窗口的边框:这个参数决定了边框的宽度,在此决定窗口某一侧添加边框的事件。

另一个参数决定了sizer事件的行为,当sizer改变时,空间的分配。并且分配的多少依赖于特定种类的sizer被使用。

3、border:设置边界宽度

Determines the border width, if the flag parameter is set to include any border flag

最后特别说明:

flag和border参数两者结合起来使用的。

vbox.Add(midPan, 1, wx.EXPAND | wx.ALL, 20)

flag=wx.EXPAND | wx.ALL,border=20---------这代表的是midPan这个组件将充分的利用空间,但是会从四周预留出来20px作为border。所以如果说使用了wx.EXPAND flag,而没有设定border,那么我们的组件将充分的利用分配的空间。

最后,我们也能去定义调整我们的组件。但是这种调整是指在sizer分配给当前构件的空间之内的一种调整。

We do it with the following flags :

wx.ALIGN_LEFT
wx.ALIGN_RIGHT
wx.ALIGN_TOP
wx.ALIGN_BOTTOM
wx.ALIGN_CENTER_VERTICAL

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表