wxPython - GridSizer

Como o nome sugere, um GridSizerobjeto apresenta uma grade bidimensional. Os controles são adicionados no slot da grade na ordem da esquerda para a direita e de cima para baixo. O objeto GridSizer tem quatro parâmetros -

wx.GridSizer(rows, columns, vgap, hgap)

Os parâmetros vgap e hgap controlam o espaçamento vertical e horizontal entre os controles adjacentes.

A tabela a seguir mostra alguns métodos importantes da classe wxGridSizer -

SN Métodos e Descrição
1

Add()

Adiciona um controle no próximo slot de grade disponível

2

AddMany()

Adiciona cada item na lista de controles

3

SetRows()

Define o número de linhas no sizer

4

GetRows()

Recupera o número de linhas no sizer

5

SetCols()

Define o número de colunas no sizer

6

GetCols()

Recupera o número de colunas em tamanho

7

SetVGap()

Define uma lacuna vertical (em pixels) entre as células

8

GetVGap()

Retorna o valor de vgap entre as células

9

SetHGap()

Define a lacuna horizontal (em pixels) entre as células

10

GetHGap()

Retorna o valor de hgap entre as células

O código a seguir demonstra um gridsizer simples de uma grade de 4 por 4 com lacunas vertical e horizontal de 5 pixels.

Gs = wx.GridSizer(4, 4, 5, 5)

Dezesseis objetos de botão são adicionados sucessivamente usando um loop 'for'.

for i in range(1,17): 
   btn = "Btn"+str(i) 
   gs.Add(wx.Button(p,label = btn),0,wx.EXPAND)

O código completo é o seguinte -

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()

O código acima produz a seguinte saída -