wxpython的sizer_wxPython BoxSizer布局

Box = wx.BoxSizer(wxHORIZONTAL) Box = wx.BoxSizer(wxVERTICAL)

Add() 方法(从wxSizer继承)它附加到sizer的下一行/列。

Box.Add(control, proportion, flag, border)

proportion 参数控制的控件响应于所述容器的尺寸改变其大小。各种flag 参数的组合决定控件在sizer的外观。下面是一些标志-

对齐标志

wx.ALIGN_TOP

wx.ALIGN_BOTTOM

wx.ALIGN_LEFT

wx.ALIGN_RIGHT

wx.ALIGN_CENTER_VERTICAL

wx.ALIGN_CENTER_HORIZONTAL

边界标志

wx.TOP

wx.BOTTOM

wx.LEFT

wx.RIGHT

wx.ALL

行为标志

S.N.

行为标志和说明

1

wx.EXPAND

项目将扩大,以填补提供给它的空间(wx.GROW是一样的)

2

wx.SHAPED

与EXPAND相似,但保持了项目的高宽比

3

wx.FIXED_MINSIZE

不允许该项目变得比其最初的最小尺寸更小

4

wx.RESERVE_SPACE_EVEN_IF_ HIDDEN

不允许测量器(sizer)回收项目空间,当它被隐藏时

border参数是整数,也可以在控件之间留下像素空间。 例如,

b = wx.StaticText(self, -1, “Enter a number”) Box.Add(b,1,wx.ALL|wx.EXPAND,10)

以下是 wx.BoxSizer 类的一些方法 –

S.N.

方法 & 描述

1

SetOrientation()

设置定向wxHORIZONTAL或wxVERTICAL

2

AddSpacer()

添加非伸缩性空间

3

AddStretchSpacer()

增加了伸缩空间,以便调整窗口的大小会影响控件的大小成比例

4

Clear()

从sizer移除子控件

5

Detach()

从sizer删除控件不销毁

6

Insert()

在指定位置插入一个子控件

7

Remove()

从sizer和销毁删除子控件

实例

在下面的代码,一个垂直box sizer用用于放置在 wxFrame 窗口面板对象。

p = wx.Panel(self) vbox = wx.wx.BoxSizer(wx.VERTICAL)

在框中的第一行显示在中心,并且以20个像素作为边框的标签(wx.StaticText对象)。

l1 = wx.StaticText(p,label = "Enter a number",style = wx.ALIGN_CENTRE ) vbox.Add(l1,0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL, 20)

在第二行中,将显示一个wx.Button对象。因为wx.EXPAND标志它占据窗口的整个宽度。

b1 = wx.Button(p, label = "Btn1") vbox.Add(b1,0, wx.EXPAND)

下一行还包含一个按钮。它没有使用EXPAND标志补充说。相反,因为ALIGN_CENTER_HORIZONTAL按钮的默认大小显示在中心水平。

b2 = wx.Button(p, label = "Btn2") vbox.Add(b2,0,wx.ALIGN_CENTER_HORIZONTAL)

在接下来的一行,添加proportion参数到TextCtrl对象设定为1和EXPAND标志集。其结果是,大小变更大。

t = wx.TextCtrl(p) vbox.Add(t,1,wx.EXPAND,10)

最后一排保持水平sizer 对象,这反过来又都有一个标签,并通过按钮拉伸空格分开。

hbox = wx.BoxSizer(wx.HORIZONTAL) l2 = wx.StaticText(p,label = "Label2", style = wx.ALIGN_CENTRE) hbox.Add(l2,0,wx.EXPAND) b3 = wx.Button(p,label = "Btn3") hbox.AddStretchSpacer(1) hbox.Add(b3,0,wx.ALIGN_LEFT,20) vbox.Add(hbox,1,wx.ALL|wx.EXPAND)

最后,垂直box sizer适用于 wx.Panel 对象。

下面是完整的代码 –

import wx class Example(wx.Frame): def __init__(self, parent, title): super(Example, self).__init__(parent, title = title, size = (200,300)) self.InitUI() self.Centre() self.Show() def InitUI(self): p = wx.Panel(self) vbox = wx.wx.BoxSizer(wx.VERTICAL) l1 = wx.StaticText(p,label = "Enter a number",style = wx.ALIGN_CENTRE ) vbox.Add(l1,0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL, 20) b1 = wx.Button(p, label = "Btn1") vbox.Add(b1,0,wx.EXPAND) b2 = wx.Button(p, label = "Btn2") vbox.Add(b2,0,wx.ALIGN_CENTER_HORIZONTAL) t = wx.TextCtrl(p) vbox.Add(t,1,wx.EXPAND,10) hbox = wx.BoxSizer(wx.HORIZONTAL) l2 = wx.StaticText(p,label = "Label2", style = wx.ALIGN_CENTRE) hbox.Add(l2,0,wx.EXPAND) b3 = wx.Button(p,label = "Btn3") hbox.AddStretchSpacer(1) hbox.Add(b3,0,wx.ALIGN_LEFT,20) vbox.Add(hbox,1,wx.ALL|wx.EXPAND) p.SetSizer(vbox) app = wx.App() Example(None, title = 'BoxSizer Demo - www.yiibai.com') app.MainLoop()

上面的代码产生下面的输出 –

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NYOJ 6 喷水装置(一)

喷水装置(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为…

如何部署Zabbix服务端

部署环境 RHEL 6.7 Zabbix-server 2.2.14 安装zabbix官方源 # wget http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm # rpm -ivh zabbix-release-2.2-1.el6.noarch.rpm 安装zabbix-server # yum install zabbix zabbix-server-mysql zab…

Google App Engine上的Spring MVC和REST

前段时间,我写了一篇关于如何使用Spring MVC实现Restful Web API的文章 。 阅读我以前的文章以了解它。 在那篇文章中,开发了一个简单的Rest示例。 为了测试该应用程序,将文件复制到Web服务器(例如Tomcat )中&#xff…

SALT+HASH撒盐加密

#region 撒盐加密string salt Guid.NewGuid().ToString();byte[] passwordAndSaltBytes System.Text.Encoding.UTF8.GetBytes(model.Password salt);byte[] hashBytes new System.Security.Cryptography.SHA256Managed().ComputeHash(passwordAndSaltBytes);string hashStr…

python 子串是否在字符串中_python七种方法判断字符串是否包含子串

1. 使用 in 和 not inin 和 not in 在 Python 中是很常用的关键字,我们将它们归类为 成员运算符。使用这两个成员运算符,可以很让我们很直观清晰的判断一个对象是否在另一个对象中,示例如下:>>> "llo" in &quo…

NYOJ 8 一种排序

一种排序 时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要…

css3中的background

对background的两种运用:一是background中的线性渐变,background: linear-gradient(to bottom,#0e7bef,#0d73da);这个是对背景颜色从上到下的一种线性渐变(linear-gradient),两个颜色参数是从第一个颜色参数渐变到第二…

Oracle JRockit Mission Control 4.1发布

Oracle发布了以前的仅JRockit专用工具Mission Control Suite(JRMC)的新版本。 4.1版本是次要版本升级,直接遵循4.0.1(该版本发布于2010年中期)。 但是,即使版本号表明是次要的升级,您仍然可以在…

pe安装usb3.0驱动_电脑店U盘启动盘制作工具下载安装须知

电脑店U盘启动盘制作工具集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计,具备较强的兼容性、稳定性和安全性。能够完美兼容台式机、品牌机及笔记本等新老机型,且安全无毒,电脑店一键U盘启动盘制作…

Webwork【02】前端OGNL试练

1.OGNL 出现的意义 在mvc中,数据是在各个层次之间进行流转是一个不争的事实。而这种流转,也就会面临一些困境,这些困境,是由于数据在不同世界中的表现形式不同而造成的: a. 数据在页面上是一个扁平的,不带数…

python ATM购物程序

需求: 模拟实现一个ATM 购物商城程序 额度 15000或自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5…

NYOJ 10 skiing

skiing 时间限制:3000 ms | 内存限制:65535 KB难度:5描述Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或…

Spring的REST服务发现性,第5部分

这是有关使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web Service的系列文章的第五篇。 上一篇文章介绍了RESTful服务HATEOAS的可发现性的概念,然后介绍了一些由测试驱动的实际方案。 本文将重点介绍可发现性的实际实现以及使用Spring…

postman使用_postman如何使用集合断言?

在postman中,大家都使用过断言,但是我们使用的断言都是针对每一个接口或者是每一个用例添加的,那么是否有可以同时对多个用例或接口添加断言呢 ? 答案是肯定有的。那么接下来我就带领大家认识下Postman中的批量断言,也…

纪念我的leetcode开门之旅

15.12.3在朋友的建议下开始了leetcode之旅,上面的题目先捡简单的刷吧。。。转载于:https://www.cnblogs.com/thewaytomakemiracle/p/5016825.html

NYOJ 16 矩形嵌套

矩形嵌套 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述有n个矩形&#xff0c;每个矩形可以用a,b来描述&#xff0c;表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d&#xff08;相当于旋转X90度&…

沉思滥用:“强力使用,破坏滥用”

英国前首相本杰明迪斯雷利&#xff08;Benjamin Disraeli&#xff09;曾有一个古老的说法&#xff0c;说谎言分为三种&#xff1a;“谎言&#xff0c;该死的谎言和统计数据”。 这里的暗示是统计数据很容易弥补它们是不可靠的。 但是&#xff0c;统计学在经验科学中得到了广泛的…

centos和ubuntu下使用cron设置定时任务

1.启动cron工具[ps:使用root权限] centos启动cron两种方式 a) /etc/init.d/crond start b) service crond start ubuntu启动cron两种方式 a) /etc/init.d/cron start b) service cron start(推荐) 2.添加定时任务[每个整点执行ls命令] centos crontab -e命令打开文件 添加一行:…

算法与数据结构(一)

这里的许多资源&#xff0c;有时间可用多看看&#xff0c;写一下。 http://download.csdn.net/album/detail/3249/2 这个哥们的博客还不错&#xff1a;http://u.cxyblog.com/2/articles-3.html转载于:https://www.cnblogs.com/oxspirt/p/5805409.html

protected访问权限_权限修饰符 /重写

一 权限修饰符 private内容不能被继承类:只有public / default 可以修饰 ,且default 默认出现protected访问权限1.同包下的类2.不同包的子类,只能通过子父类关系访问,只有子类中才可以使用.权限修饰符只能修饰成员,成员修饰符(成员变量|成员方法)二 重写重写和重载的区别:(都指…