wxpython布局管理部件wx.gridbagsizer用法示例
text = ("This is text box")
panel = wx.Panel(self, -1)
chkAll1 = wx.CheckBox(panel, ID_CHKBOX_CAN_SEL_ALL, u'全选')
chkKnown = wx.CheckBox(panel, ID_CHKBOX_CAN_UNKNOWN, u'不会')
chkUnknow = wx.CheckBox(panel, ID_CHKBOX_CAN_KNOWN, u'会')
chkAll2 = wx.CheckBox(panel, ID_CHKBOX_SEGMENT_SEL_ALL, u'全选')
chkChuzhong = wx.CheckBox(panel, ID_CHKBOX_SEGMENT_SEL_CHUZHONG, u'初中')
chkCollegue = wx.CheckBox(panel, ID_CHKBOX_SEGMENT_SEL_DAXUE, u'大学')
chkCollegueCet6 = wx.CheckBox(panel, ID_CHKBOX_SEGMENT_SEL_DAXUE_CET6, u'大学六级')
#lst = wx.ListCtrl(panel, ID_LIST_RECITE, style=wx.LC_REPORT|wx.LC_VIRTUAL|wx.LC_HRULES|wx.LC_VRULES)
self.lst = ReciteListCtrl(panel, ID_LIST_RECITE)
sz1 = wx.GridSizer(rows=2, cols=4, vgap=5, hgap=20)
sz1.Add(chkAll1)
sz1.Add(chkKnown)
sz1.Add(chkUnknow)
sz1.Add(wx.TextCtrl(panel))
sz1.Add(chkAll2)
sz1.Add(chkChuzhong)
sz1.Add(chkCollegue)
sz1.Add(chkCollegueCet6)
sz0 = wx.BoxSizer(wx.VERTICAL)
sz0.Add(sz1)
sz0.Add(self.lst, 1, wx.EXPAND)
panel.SetSizer(sz0)
wxpython布局管理部件wx.gridbagsizer用法示例
转自:http://www.jbxue.com/python/29629.htm
wxpython中布局管理wx.gridbagsizer部件的用法,wx.gridbagsizer实现对部件的显式定位,部件项目还可以跨越行或列,一起学习下。
wxPython 中最复杂的 sizer.
它带来了对部件的显式定位. 部件项目还可以跨越行或列. 专题教程:wxpython中文教程
wx.GridBagSizer 的构造器是十分简单的。
wx.GridBagSizer (integer vgap, integer hgap)
垂直和水平空白 (gap) 定义了子部件之间的空白距离. 通过 Add() 方法向网格里添加部件项目.
Add(self, item, tuple pos, tuple span=wx.DefaultSpan, integer flag=0,
integer border=0, userData=None)
“item” 指你要插入到网格中的部件. “pos” 指定虚拟网格的位置. 左上单元格的 “pos” 值为(0, 0).“span” 是一个对应部件的跨度值. 比如(3, 2)指一个部件要跨越 3 行 2 列. “flag” 和 “border” 两个参数在早前的 wx.BoxSizer 中已经讨论了.
网格中的这些部件项目可以随窗口缩放而改变其大小,也可以保持不变.
如果需要部件变大或缩小,可以使用这两个方法.
AddGrowableRow(integer row)
AddGrowableCol(integer col)
例子:
复制代码代码示例:
#!/usr/bin/python
#coding=utf-8
#wxgridbagsizer.py
import wx
class MyFrame(wx.Frame):
def __init__(self,parent, id, title):
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition)
sizer = wx.GridBagSizer(9, 9)
sizer.Add(wx.Button(self, -1, "按钮1"), (0, 0), wx.DefaultSpan,
wx.ALL, 5)
sizer.Add(wx.Button(self, -1, "按钮2"), (1, 1), (1, 7), wx.EXPAND)
sizer.Add(wx.Button(self, -1, "按钮3"), (6, 6), (3, 3), wx.EXPAND)
sizer.Add(wx.Button(self, -1, "按钮4"), (3, 0), (1, 1),
wx.ALIGN_CENTER)
sizer.Add(wx.Button(self, -1, "按钮5"), (4, 0), (1, 1),
wx.ALIGN_LEFT)
sizer.Add(wx.Button(self, -1, "按钮6"), (5, 0), (1, 1),
wx.ALIGN_RIGHT)
sizer.AddGrowableRow(6)
sizer.AddGrowableCol(6)
self.SetSizerAndFit(sizer)
self.Centre()
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'wxgridbagsizer.py')
frame.Show(True)
return True
app = MyApp(0)
app.MainLoop()
要实现部件跨越多于一个的单元格,必须要提供 wx.EXPAND 标志。
self.SetSizerAndFit(sizer)
这方法跟 SetSizer() 差不多,此外它将把大小通告给窗口,以确保所有按钮都将显示在窗口上。
wxpython布局管理部件wx.gridbagsizer用法示例的更多相关文章
- wxpython 布局管理
一个典型的应用程序是由不同的部件.这些小部件被放进容器部件.一个程序员必须管理应用程序的布局.这不是一项容易的任务.在wxPython我们有两个选择. *absolute positioning*si ...
- Java Swing布局管理器GridBagLayout的使用示例 [转]
GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...
- 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
5.Java-Swing常用布局管理器 应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...
- Java-Swing常用布局管理器
http://www.cnblogs.com/hthuang/p/3460234.html 5.Java-Swing常用布局管理器 应用布局管理器都属于相对布局,各组件位置可随界面大小 ...
- Python图形界面开发—wxPython库的布局管理及页面切换
前言 wxPython是基于Python的跨平台GUI扩展库,对wxWidgets( C++ 编写)封装实现.GUI程序的开发中界面布局是很重要的一个部分,合理的页面布局能够给予用户良好使用体验.虽然 ...
- pyqt布局管理器QGridLayout简单示例
# _*_ coding:utf-8 _*_ import sys from PyQt4 import QtGui class Example(QtGui.QWidget): def __init__ ...
- Tkinter 的三大布局管理器 pack、grid 和 place用法汇总
学习python的tkinter免不了要对各个组件进行位置的排放与设定,常用的布局管理器有grid,pack和place.这三种均用于同一父组件下的组件布局,但是也是有区别的,先看下他们各自的含义吧. ...
- [置顶] Android布局管理器 - 详细解析布局实现
布局管理器都是以ViewGroup为基类派生出来的; 使用布局管理器可以适配不同手机屏幕的分辨率,尺寸大小; 布局管理器之间的继承关系 : 在上面的UML图中可以看出, 绝对布局 帧布局 网格布局 相 ...
- Qt布局管理
原地址:http://blog.csdn.net/lastsoup/article/details/7028243 设计软件中各个部件的位置排列,有两种方法: 1.设置widget的在父窗体中的坐标和 ...
随机推荐
- Mysql字符串截取:Left()、Right()、Substring()、Substring_index()
在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些, mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结: ...
- git部署详解
1.1 关于版本控制 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别.这么做唯一的 好处就是简单,但是特别容易犯错.有 ...
- 信号处理是Unix和LInux系统为了响应某些状况而产生的事件
信号处理是Unix和LInux系统为了响应某些状况而产生的事件,通常内核产生信号,进程收到信号后采取相应的动作. 例如当我们想强制结束一个程序的时候,我们通常会给它发送一个信号,然后该进程会捕捉到信号 ...
- 通过 systemctl 设置自定义 Service
如果要在Linux 上设置一个开机自启,出现问题自动重启,并且有良好日志的程序,比较流行的方法有 supervisord.systemd,除此之外,还有 upstart.runit 等类似的工具. 但 ...
- windows下连接hadoop运行eclipse报错Permission denied:
这是权限问题,试了一下同时也不能在hdfs创建文件夹. 解决: 修改如下hadoop的配置文件:etc/hadoop/hdfs-site.xml,如没有的话可以添加上. <property> ...
- Linux e1000e网卡驱动
目录 识别网卡 命令行参数 附加配置 技术支持 一.识别网卡e1000e驱动支持Intel所有的GbE PCIe网卡,除了82575,82576,基于82580系列的网卡.提示:Intel(R) PR ...
- kkpager的改进,Ajax数据变化但是页码不变的问题,kkpagerajax
最近做项目用到了kkpager来做分页,在一个页面只是调用一次的时候不会出现问题,但是在一个页面多次调用就出现问题了. 在网上搜集了好久,终于找到了解决方法,记录下来方便以后使用.希望也可以方便需要的 ...
- C# 利用WMI对象获取物理内存和可用内存大小
下面的代码演示的是使用WMI对象可获取取物理内存和可用内存大小,在使用WMI对象前,先要添加对System.Management的引用,然后就可以调用WMI对象,代码如下: //获取总物理内存大小 M ...
- 从pthread 到QThread
该文出自:http://www.civilnet.cn/bbs/topicno/78430 使用线程技术进行应用编程的意义在gemfield的文章<从进程到线程>中已经介绍过了,我们就直奔 ...
- [洛谷P3935]Calculating
题目大意:设把$x$分解质因数的结果为$x=p_1^{k_1}p_2^{k_2}\cdots p_n^{k_n}$,令$f(x)=(k_1+1)(k_2+1)\cdots (k_n+1)$,求$\su ...