简述
顾名思义,GridSizer对象呈现一个二维网格。控件以从左到右和从上到下的顺序添加到网格槽中。GridSizer 对象有四个参数 -
wx.GridSizer(rows, columns, vgap, hgap)
vgap 和 hgap 参数控制相邻控件之间的垂直和水平间距。
下表显示了 wxGridSizer 类的一些重要方法 -
序列号 |
方法和描述 |
1 |
Add()
在下一个可用的网格槽中添加一个控件
|
2 |
AddMany()
添加控件列表中的每个项目
|
3 |
SetRows()
设置 sizer 中的行数
|
4 |
GetRows()
检索 sizer 中的行数
|
5 |
SetCols()
设置 sizer 中的列数
|
6 |
GetCols()
检索大小的列数
|
7 |
SetVGap()
设置单元格之间的垂直间隙(以像素为单位)
|
8 |
GetVGap()
返回单元格之间的 vgap 值
|
9 |
SetHGap()
设置单元格之间的水平间距(以像素为单位)
|
10 |
GetHGap()
返回单元格之间的 hgap 值
|
下面的代码演示了一个简单的 4 x 4 网格,垂直和水平间距为 5 个像素。
Gs = wx.GridSizer(4, 4, 5, 5)
使用“for”循环连续添加了 16 个按钮对象。
for i in range(1,17):
btn = "Btn"+str(i)
gs.Add(wx.Button(p,label = btn),0,wx.EXPAND)
完整的代码如下 -
import wx
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title = title,size = (300,200))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
p = wx.Panel(self)
gs = wx.GridSizer(4, 4, 5, 5)
for i in range(1,17):
btn = "Btn"+str(i)
gs.Add(wx.Button(p,label = btn),0,wx.EXPAND)
p.SetSizer(gs)
app = wx.App()
Example(None, title = 'Grid demo')
app.MainLoop()
上面的代码产生以下输出 -