wxPython – GridSizer
顾名思义, GridSizer 对象呈现了一个二维的网格。控件按照从左到右和从上到下的顺序被添加到网格槽中。GridSizer对象需要四个参数 –
wx.GridSizer(rows, columns, vgap, hgap)
vgap和hgap参数控制相邻控件之间的垂直和水平间距。
下表显示了wxGridSizer类的一些重要方法。
S.N. | 方法和描述 |
---|---|
1 | Add() 在下一个可用的网格槽中添加一个控件。 |
2 | AddMany() 在控件列表中添加每个项目 |
3 | SetRows() 设置网格器中的行数 |
4 | GetRows() 检索尺寸器中的行数 |
5 | SetCols() 设置尺寸器中的列数 |
6 | GetCols() 检索尺寸中的列数 |
7 | SetVGap() 设置单元格之间的垂直间隙(像素)。 |
8 | GetVGap() 返回单元格之间vgap的值 |
9 | SetHGap() 设置单元格之间的水平间隙(单位:像素)。 |
10 | GetHGap() 返回单元格之间的hgap值 |
下面的代码演示了一个简单的4乘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()
上述代码产生的输出结果如下 —