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的更多相关文章

  1. (四)Python中的“四大才子”(字符串、列表、字典、集合)

    前戏:在python中把数据序列分为可变(mutable)和不可变(immutable)两种 不可变:string.int.float.tuple 特点:相同对象只是占用一个内存地址,不管有多少个变量 ...

  2. Python 中常见错误总结

    IndentationError: unexpected indent Python 中强制缩进,, IndentationError: unexpected indent 缩进错误 这类错误非常常见 ...

  3. 转载:【学习之家】Python中__init__.py文件的作用

    Python中__init__.py文件的作用详解 Python中__init__.py文件的作用详解 来源:学习之家 作者:xuexi110 人气:357 发布时间:2016-09-29 摘要:__ ...

  4. Python中open函数怎么操作文件--9

    转:https://www.tuicool.com/wx/vYjaYnV 在 Python 中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open ...

  5. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

  6. python中的Ellipsis

    ...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...

  7. python中的默认参数

    https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...

  8. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  9. python中的TypeError错误解决办法

    新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...

随机推荐

  1. MongoDB学习之路(三)

    数据库 一个MongoDB可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自 ...

  2. 201521123061 《Java程序设计》第七周学习总结

    201521123061 <Java程序设计>第七周学习总结 1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 贴上源 ...

  3. 201521123087 《Java程序设计》第4周学习总结

    1. 本周学习总结 2. 书面作业 注释的应用使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图)                                 ...

  4. 201521123039 《java程序设计》第一周学习总结(新)

    1.本章学习总结 -Java是面向对象的程序语言,它一切定义都是对象.我们所编写的Java程序经过编译后生成了.class的文件,再经过JVM对.class解释运行就可以得到Java程序,所以Java ...

  5. 201521123088《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  6. 201521123080《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 多线程: 内涵: 指的是这个程序(一个进程)运行时产生了不止一个线程 内存模型: main memory(主 ...

  7. Python数据类型方法精心整理,不必死记硬背,看看源码一切都有了

    Python认为一切皆为对象:比如我们初始化一个list时: li = list('abc') 实际上是实例化了内置模块builtins(python2中为__builtin__模块)中的list类: ...

  8. 如何定制 Calico 网络 Policy - 每天5分钟玩转 Docker 容器技术(70)

    Calico 默认的 policy 规则是:容器只能与同一个 calico 网络中的容器通信.本节讨论如何定制 policy. calico 能够让用户定义灵活的 policy 规则,精细化控制进出容 ...

  9. Exception in thread "main" org.hibernate.TransientObjectException: object references an unsaved tran

    今天在使用一对多,多对一保存数据的时候出现了这个错误 Hibernate错误: Exception in thread "main" org.hibernate.Transient ...

  10. 运算符(C# 参考)

    reference:https://msdn.microsoft.com/zh-cn/library/zkacc7k1(v=vs.140).aspx