wxPython - GridSizer
Como sugiere el nombre, un GridSizerEl objeto presenta una cuadrícula bidimensional. Los controles se agregan en la ranura de la cuadrícula en orden de izquierda a derecha y de arriba a abajo. El objeto GridSizer toma cuatro parámetros:
wx.GridSizer(rows, columns, vgap, hgap)
Los parámetros vgap y hgap controlan el espaciado vertical y horizontal entre los controles adyacentes.
La siguiente tabla muestra algunos métodos importantes de la clase wxGridSizer:
SN | Métodos y descripción |
---|---|
1 | Add() Agrega un control en la siguiente ranura de cuadrícula disponible |
2 | AddMany() Agrega cada elemento en la lista de controles |
3 | SetRows() Establece el número de filas en el medidor. |
4 | GetRows() Recupera el número de filas en el medidor. |
5 | SetCols() Establece el número de columnas en el medidor. |
6 | GetCols() Recupera el número de columnas en tamaño. |
7 | SetVGap() Establece el espacio vertical (en píxeles) entre las celdas |
8 | GetVGap() Devuelve el valor de vgap entre las celdas. |
9 | SetHGap() Establece el espacio horizontal (en píxeles) entre las celdas |
10 | GetHGap() Devuelve el valor de hgap entre las celdas. |
El siguiente código muestra un gridsizer simple de una cuadrícula de 4 por 4 con un espacio vertical y horizontal de 5 píxeles.
Gs = wx.GridSizer(4, 4, 5, 5)
Se agregan sucesivamente dieciséis objetos de botón mediante un bucle 'for'.
for i in range(1,17):
btn = "Btn"+str(i)
gs.Add(wx.Button(p,label = btn),0,wx.EXPAND)
El código completo es el siguiente:
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()
El código anterior produce la siguiente salida: