Python wxPython库Core组件BoxSizer用法示例
作者:烈风 发布时间:2023-01-17 23:08:32
本文实例讲述了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, '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
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程序设计有所帮助。
来源:https://blog.csdn.net/igolang/article/details/8838677
猜你喜欢
- PDO::errorCodePDO::errorCode — 获取跟数据库句柄上一次操作相关的 SQLSTATE(PHP 5 >= 5
- body {font-family: Arial, sans-serif; }这是我迄今
- 需求:实现ajax请求,在界面上任意地方点击,可以成功传参。创建项目如下所示:settings.py文件的设置,这次我们除了要注册app和设
- 由于 window.onload 事件需要在页面所有内容(包括图片等)加载完后,才执行,但往往我们更希望在 DOM 一加载完就执行脚本。其实
- 数字范围:922337203685477~-922337203685477函数代码如下: <%Public Fun
- 大家是否还记得1983年任天堂的著名游戏《超级玛丽》里那个留着胡子的意大利水管工人,还有日本konami公司1987年发行的射击游戏《魂斗罗
- php数组中元素的存在方式是以键值对的方式('key'=>'value'),有时候我们需要根据键删除数
- 分享给大家一篇文章,教你怎样用Python画了一棵圣诞树,快来学习。如何用Python画一个圣诞树呢?最简单:height = 5stars
- 最近python代码遇到了一个神奇的需求, 就是如果将python utc datetime转换为时间戳.百度找到都是使用time.mkti
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 6 - Manipulating HTML通过Mo
- 本文实例代码主要实现python编程测试电脑开启最大线程数,具体实现代码如下。#!/usr/bin/env python #co
- 环境:Windows, Python2.7一维情况:<span style="font-size:14px;"&g
- 父层: <div class="col-xs-12"> <div class
- 以前工作的时候由于Oracle8i数据库经常出现用户过多的错误,由于数据量大,经常出现ORA:12500错误,但主要原因是访问过多而引起的,
- 字典由多个键及与其对应的值构成的对组成(把键值对成为项),每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典由一对大括号
- 本文实例讲述了php实现通过cookie换肤的方法。分享给大家供大家参考。具体如下:saveStyleSheet.php页面如下:<?
- 最近公司准备扩张海外业务,所以要给 Django 系统添加 国际化与本土化 支持。国际化一般简称 i18n ,代表 Internationa
- pandas模块pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同
- 1. 在 Python 中 XML 文件的编码问题1.Python 使用的xml.etree.ElementTree库只支持解析和生成标准的
- 这里分析了php的简单防盗链实现方法。分享飞大家供大家参考。具体如下:index.php页面如下:<html><head&