wxPython Grid
Oggi vediamo come usare il componente Grid in Python e wxPython.
Questo componente è la "classica" tabella, diviso in righe e colonne.
Vediamone un primo esempio:
import wx
import wx.grid as gridlibclass GridForm(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None, title="Grid")
panel = wx.Panel(self)
g = gridlib.Grid(panel)
g.CreateGrid(6, 6)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(g, 1, wx.EXPAND)
panel.SetSizer(sizer)
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = GridForm().Show()
app.MainLoop()
Prima importiamo le librerie che ci interessano.
Inizializiamo il Frame, aggiungiamo un Panel e sotto creiamo la nostra Grid.
Al metodo CreateGrid dobbiamo passargli il numero di righe e colonne.
Sotto avviamo la app.
Qua sotto invece un esempio più concreto:
import wx
import wx.grid as gridlib
class GridForm(wx.Frame):def __init__(self):
wx.Frame.__init__(self, parent=None, title="Grid", size=(650,320))
panel = wx.Panel(self)
g = gridlib.Grid(panel)
g.CreateGrid(15, 15)
g.SetCellValue(0,0, "CIAO")
g.SetCellFont(0, 0, wx.Font(12, wx.ROMAN, wx.ITALIC, wx.NORMAL))
g.SetCellValue(1,1, "CELLA ROSSA")
g.SetCellTextColour(1, 1, wx.RED)
g.SetCellBackgroundColour(2, 2, wx.CYAN)
g.SetCellValue(3, 3, "SOLA LETTURA")
g.SetReadOnly(3, 3, True)
g.SetCellEditor(5, 0, gridlib.GridCellNumberEditor(1,1000))
g.SetCellValue(5, 0, "123456")
g.SetCellEditor(6, 0, gridlib.GridCellFloatEditor())
g.SetCellValue(6, 0, "123.34")
g.SetCellEditor(7, 0, gridlib.GridCellNumberEditor())
g.SetCellSize(11, 1, 3, 3)
g.SetCellAlignment(11, 1, wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)
g.SetCellValue(11, 1, "This cell is set to span 3 rows and 3 columns")
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(g)
panel.SetSizer(sizer)
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = GridForm()
frame.Show()
app.MainLoop()
Abbiamo aggiunto un pò di carne al fuoco, come ad esempio i colori, o celle in sola lettura.
Come al solito Python ha un codice molto compatto, e in poche righe di codice riusciamo a personalizzare la nostra Grid.
La prossima volta vedremo creare una Grid dinamica a seconda dei dati che arrivano in formato JSON.
Ciao!
python wxpython grid frame panel creategrid json
Commentami!