How to override PyGridTableBase.SetColLabelValue()?

ajaksu ajaksu at gmail.com
Mon Jul 9 00:42:25 EDT 2007


On Jul 9, 12:27 am, fck... at gmail.com wrote:
> Dear all,
>
> the doc is missing, and i failed to find the solution on google search.
> anyone know how to override the function SetColLabel() inside
> the class PyGridTableBase or the class GridTableBase?

Some docs to back up the old code that follows :)
http://wiki.wxpython.org/wxPyGridTableBase
http://wiki.wxpython.org/wxGrid
http://wxwidgets.org/manuals/stable/wx_wxgrid.html#wxgridsetcollabelvalue

I hope this helps, it's old and 2.6, the design had many weird
requirements plus I never got to think about whether it was a good way
to do it. Anyway, the docs are far better :)


> my code,
(snip)
Mine:
class SpeciesBase(object):
    def __init__(self, ncols=1, nrows=15, colnames=None,
rownames=None):
        self.__data = []
        self.rows = []
        self.cols = []
    def __getitem__(self, col):
        return self.__data[col][:]

class SpeciesTableBase(wx.grid.PyGridTableBase):
    def __init__(self):
        wx.grid.PyGridTableBase.__init__(self)
        self.data = SpeciesBase()
        self._rows = self.GetNumberRows()
        self._cols = self.GetNumberCols()
    def SetColLabelValue(self, col, value):
        self.data.cols[col] = str(value)
    def GetNumberRows(self):
        return len(self.data[0])

class SpeciesGrid(wx.grid.Grid):
    def __init__(self, parent):
        wx.grid.Grid.__init__(self, parent, -1)
        self.table = SpeciesTableBase()
    def rename_col(self, col, value):
        self.table.SetColLabelValue(col, value)
        self.table.ResetView(self)

Other useful links:
http://wiki.wxpython.org/UpdatingGridData
http://wiki.wxpython.org/DrawingOnGridColumnLabel




More information about the Python-list mailing list