wxPython - GridSizer 类

  • 简述

    顾名思义,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()
    
    上面的代码产生以下输出 -
    网格输出