Python wxPython库Core组件BoxSizer用法示例


Posted in Python onSeptember 03, 2018

本文实例讲述了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 wx
class Border(wx.Frame):
  def __init__(self, parent, id, title):
    wx.Frame.__init__(self, parent, id, '3water.com - 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()

运行结果:

Python wxPython库Core组件BoxSizer用法示例

通过这个例子可以观察出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
wx.ALIGN_CENTER_HORIZONTAL
wx.ALIGN_CENTER

看下面一个例子:

hbox5 = wx.BoxSizer(wx.HORIZONTAL)
btn1 = wx.Button(panel, -1, 'Ok', size=(70, 30))
hbox5.Add(btn1, 0)
btn2 = wx.Button(panel, -1, 'Close', size=(70, 30))
hbox5.Add(btn2, 0, wx.LEFT | wx.BOTTOM , 5)
vbox.Add(hbox5, 0, wx.ALIGN_RIGHT | wx.RIGHT, 10)

这个例子将已有的hbox5放置到vbox当总,而wx.ALIGN_RIGHT所起到的作用就是在hbox5这个sizer当中的横向往右放置的调整

下面是常用的flag参数:

1、These flags are used to specify which side(s) of the sizer item that the border width will apply to.

wx.TOP wx.BOTTOM wx.LEFT wx.RIGHT wx.ALL

2、The item will be expanded to fill the space allotted to the item.

wx.EXPAND

还有两个没有列出来,如果用到的话,可以查帮助文档

最后,有些情况下我们需要添加一些空白的区域到我们的应用当中,可以使用下面的代码:

vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add((-1, 25))
vbox.Add((-1, 25))---添加了25个像素的空白空间

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python连接mssql数据库编码问题解决方法
Jan 01 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
Python判断两个对象相等的原理
Dec 12 Python
在python中pandas的series合并方法
Nov 12 Python
python爬取网易云音乐评论
Nov 16 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
Python中函数的返回值示例浅析
Aug 28 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
python blinker 信号库
May 04 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 #Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 #Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 #Python
Python中关键字global和nonlocal的区别详解
Sep 03 #Python
python leetcode 字符串相乘实例详解
Sep 03 #Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 #Python
Python实现多级目录压缩与解压文件的方法
Sep 01 #Python
You might like
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
python提取log文件内容并画出图表
2019/07/08 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
不拖欠农民工工资承诺书
2014/03/31 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
市场部岗位职责
2015/02/12 职场文书
任命书格式模板
2015/09/22 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
Python实现智慧校园自动评教全新版
2021/06/18 Python
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript