subclass PyGridTableBase : Grid « wxPython « Python Tutorial






subclass PyGridTableBase
import wx
import wx.grid

class TestTable(wx.grid.PyGridTableBase):
    def __init__(self):
        wx.grid.PyGridTableBase.__init__(self)
        self.data = { (1,1) : "A",(2,2) : "B"}
        
        self.odd=wx.grid.GridCellAttr()
        self.odd.SetBackgroundColour("red")
        self.odd.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD))

        self.even=wx.grid.GridCellAttr()
        self.even.SetBackgroundColour("yellow")
        self.even.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD))

    def GetNumberRows(self):
        return 5

    def GetNumberCols(self):
        return 5

    def IsEmptyCell(self, row, col):
        return self.data.get((row, col)) is not None

    def GetValue(self, row, col):
        value = self.data.get((row, col))
        if value is not None:
            return value
        else:
            return ''

    def SetValue(self, row, col, value):
        self.data[(row,col)] = value


    def GetAttr(self, row, col, kind):
        attr = [self.even, self.odd][row % 2]
        attr.IncRef()
        return attr
class TestFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, title="Grid Table",size=(640,480))

        grid = wx.grid.Grid(self)

        table = TestTable()
        grid.SetTable(table, True)
        

app = wx.PySimpleApp()
frame = TestFrame()
frame.Show()
app.MainLoop()








19.17.Grid
19.17.1.Set value for grid cellSet value for grid cell
19.17.2.row label and column labelrow label and column label
19.17.3.Format cell valueFormat cell value
19.17.4.subclass PyGridTableBasesubclass PyGridTableBase
19.17.5.subclass PyGridTableBase and provide the row labels and column labelssubclass PyGridTableBase and provide the row labels and column labels
19.17.6.Grid AttributesGrid Attributes