Python中wx.FlexGridSizer
FlexGridSizer是GridSizer的一个更灵活的版本。它与标准的GridSizer几乎相同,除了下面3点例外:
1、每行和每列可以有各自的尺寸。
2、默认情况下,当尺寸调整时,它行和列整体改变尺寸。所以,如果需要的话,你可以指定哪行或哪列应该增长。
3、它可以在两个方向灵活地增长,意思是你可以为个别的子元素指定比列量,并且你可以指定固定方向增长上的行为。
1. 构造函数:
wx.FlexGridSizer(int rows=1, int cols=0, int vgap=0, int hgap=0)
参数:
rows 定义GridSizer 行数
cols 定义GridSizer 列数
vgap 定义垂直方向上行间距
hgap 定义水平方向上列间距
2. FlexGridSizer的常用函数
AddGrowableCol(idx, proportion=0) 设定索引为idx的列为可增长列
AddGrowableRow(idx, proportion=0) 设定索引为idx的行为可增长行
参数:
proportion=0 为默认,表示所有的可增长行或列 按照同比列缩放。如果要指定不一样的缩放比例,那么需要手动设置proportion 值。
例如,如果你有两个尺寸可调整的行,并且它们的proportion分别是2和1,那么这第一个行将得到新空间的2/3,第二行将得到 1/3。
# -*- coding: utf-8 -*-
#-------------------------------------------------------------------------------
# Name: ??1
# Purpose:
#
# Author: ankier
#
# Created: 09/10/2012
# Copyright: (c) ankier 2012
# Licence: <your licence>
#-------------------------------------------------------------------------------
import wx
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title=title, size=(600, 250))
self.InitUI()
self.Centre()
self.Show() def InitUI(self):
panel = wx.Panel(self)
hbox = wx.BoxSizer(wx.HORIZONTAL)
#设置为2行4列
fgs = wx.FlexGridSizer(2, 4, 9, 20)
title = wx.StaticText(panel, label="Title")
author = wx.StaticText(panel, label="Author", style= wx.ALIGN_RIGHT)
review = wx.StaticText(panel, label="Review", style= wx.ALIGN_RIGHT)
tc1 = wx.TextCtrl(panel)
tc2 = wx.TextCtrl(panel)
tc3 = wx.TextCtrl(panel, style=wx.TE_MULTILINE) #AddMany可以同时添加几个列表,每个列表的参数与Add方法相同
#Add方法定义:Add(self, item, int proportion=0, int flag=0, int border=0,PyObject userData=None)
fgs.AddMany([(title, 0, wx.ALIGN_RIGHT), (tc1, 0, wx.SHAPED), (author, 0, wx.ALIGN_RIGHT), \
(tc2, 0, wx.SHAPED), (review, 0, wx.ALIGN_RIGHT), (tc3, 0, wx.EXPAND)])
# fgs.AddMany([title,tc1,author,tc2,review,tc3])
#设置索引列1,3为自动增长列
fgs.AddGrowableCol(1, 1)
fgs.AddGrowableCol(3, 1)
hbox.Add(fgs, proportion=1, flag=wx.ALL|wx.EXPAND, border=15)
panel.SetSizer(hbox) if __name__ == '__main__':
app = wx.App()
Example(None, title='Review')
app.MainLoop()
运行结果:

Python中wx.FlexGridSizer的更多相关文章
- (四)Python中的“四大才子”(字符串、列表、字典、集合)
前戏:在python中把数据序列分为可变(mutable)和不可变(immutable)两种 不可变:string.int.float.tuple 特点:相同对象只是占用一个内存地址,不管有多少个变量 ...
- Python 中常见错误总结
IndentationError: unexpected indent Python 中强制缩进,, IndentationError: unexpected indent 缩进错误 这类错误非常常见 ...
- 转载:【学习之家】Python中__init__.py文件的作用
Python中__init__.py文件的作用详解 Python中__init__.py文件的作用详解 来源:学习之家 作者:xuexi110 人气:357 发布时间:2016-09-29 摘要:__ ...
- Python中open函数怎么操作文件--9
转:https://www.tuicool.com/wx/vYjaYnV 在 Python 中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open ...
- [转]Python中的str与unicode处理方法
早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...
- python中的Ellipsis
...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...
- python中的默认参数
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...
- Python中的类、对象、继承
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...
- python中的TypeError错误解决办法
新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...
随机推荐
- 实时监听文本框输入 oninput、onchange与onpropertychange事件的用法和区别
前端页面开发的很多情况下都需要实时监听文本框输入,比如腾讯微博编写140字的微博时输入框hu9i动态显示还可以输入的字数.过去一般都使用onchange/onkeyup/onkeypress/onke ...
- 使用nfs作为根文件系统启动,(3)
通过设置u-boot的bootargs来更改开机自动进入nfs远端服务器,不需要mount指令,实现虚拟机编译程序后直接通过u-boot烧写程序 1 使用nfs作为根文件系统启动 1.1 pr ...
- 性能测试中vmstat命令的常见使用。
vmstat是Linux中常用的一个命令,尤其是在进行性能测试时,使用该命令,往往能辅助我们进行性能问题定位. 我们先看一下这个命令执行得到的数据. [root@xxx ~]# vmstat 1 10 ...
- 算法学习:Pac-Man的简单对抗
Pacman项目是加州大学伯克利分校提供的一个可视化的AI学习平台.其主体利用python完成.该项目提供了丰富的说明文档,以及预先实现了一些简单的算法供参考各接口的使用. http://ai.ber ...
- 第五次作业2、请将该code进行代码重构,使之模块化,并易于阅读和维护;
1.请运行下面code,指出其功能: (需附运行结果截图,并用简短文字描述其功能) 显示了人的姓名.年龄 2.请将该code进行代码重构,使之模块化,并易于阅读和维护: 3.观看视频The Exper ...
- JAVA课程设计-购物车 (201521123101 柏清晔)
1.团队课程设计博客链接 /[团队博客链接]http://www.cnblogs.com/yayaya/p/7062197.html 2.个人负责模板或任务说明 1.连接数据库 2.修改购物车的jsp ...
- 使用electron将应用程序加入到系统托盘
博主电脑
- 【Debian 8.8】Java 8 安装以及环境变量配置
事实上可以分为简单的三个步骤: 下载 JDK 压缩包 解压压缩包 配置环境变量 需要注意的是: 所有命令默认在 root 权限下进行! 演示环境是 Debian 8.8 64位 (阿里云学生机) 1. ...
- angular之表单验证与ngMessages
刚接触angular1.x很多经常用到的ngMessages的地方,这里顺便记一下,效果如下图: 如果引用了angular-messages.js报如下错误,说明你的angular.js和angula ...
- 使用.net 自建短链接(短网址)
短连接大家都不陌生,例如新浪的 t.cn .京东的 3.cn .淘宝的 tb.cn 等等.都已经是家喻户晓的短连接域名.不知道有多少人像我一样,对短连接原理好奇而且尝试自建了呢? 今天发布这个文章的目 ...