wxPython - GridSizer
Come suggerisce il nome, a GridSizerl'oggetto presenta una griglia bidimensionale. I controlli vengono aggiunti nello slot della griglia nell'ordine da sinistra a destra e dall'alto verso il basso. L'oggetto GridSizer accetta quattro parametri:
wx.GridSizer(rows, columns, vgap, hgap)
I parametri vgap e hgap controllano la spaziatura verticale e orizzontale tra i controlli adiacenti.
La tabella seguente mostra alcuni metodi importanti della classe wxGridSizer -
SN | Metodi e descrizione |
---|---|
1 | Add() Aggiunge un controllo nel successivo slot della griglia disponibile |
2 | AddMany() Aggiunge ogni elemento nell'elenco dei controlli |
3 | SetRows() Imposta il numero di righe nel sizer |
4 | GetRows() Recupera il numero di righe nel sizer |
5 | SetCols() Imposta il numero di colonne nel sizer |
6 | GetCols() Recupera il numero di colonne di dimensione |
7 | SetVGap() Imposta lo spazio verticale (in pixel) tra le celle |
8 | GetVGap() Restituisce il valore di vgap tra le celle |
9 | SetHGap() Imposta lo spazio orizzontale (in pixel) tra le celle |
10 | GetHGap() Restituisce il valore di hgap tra le celle |
Il codice seguente mostra una semplice griglia di una griglia 4 per 4 con uno spazio verticale e orizzontale di 5 pixel.
Gs = wx.GridSizer(4, 4, 5, 5)
Sedici oggetti pulsante vengono aggiunti successivamente utilizzando un ciclo "for".
for i in range(1,17):
btn = "Btn"+str(i)
gs.Add(wx.Button(p,label = btn),0,wx.EXPAND)
Il codice completo è il seguente:
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()
Il codice precedente produce il seguente output: