X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..25b3661bd4cb44304418b93c0dee1d0dfb99765c:/wxPython/demo/GridHugeTable.py?ds=sidebyside diff --git a/wxPython/demo/GridHugeTable.py b/wxPython/demo/GridHugeTable.py index 69e3aed48b..cd5d2e258e 100644 --- a/wxPython/demo/GridHugeTable.py +++ b/wxPython/demo/GridHugeTable.py @@ -1,21 +1,32 @@ -from wxPython.wx import * -from wxPython.grid import * -#--------------------------------------------------------------------------- +import wx +import wx.grid as gridlib -class HugeTable(wxPyGridTableBase): +#--------------------------------------------------------------------------- - """ - This is all it takes to make a custom data table to plug into a - wxGrid. There are many more methods that can be overridden, but - the ones shown below are the required ones. This table simply - provides strings containing the row and column values. - """ +class HugeTable(gridlib.PyGridTableBase): def __init__(self, log): - wxPyGridTableBase.__init__(self) + gridlib.PyGridTableBase.__init__(self) self.log = log + self.odd=gridlib.GridCellAttr() + self.odd.SetBackgroundColour("sky blue") + self.even=gridlib.GridCellAttr() + self.even.SetBackgroundColour("sea green") + + def GetAttr(self, row, col, kind): + attr = [self.even, self.odd][row % 2] + attr.IncRef() + return attr + + + + # This is all it takes to make a custom data table to plug into a + # wxGrid. There are many more methods that can be overridden, but + # the ones shown below are the required ones. This table simply + # provides strings containing the row and column values. + def GetNumberRows(self): return 10000 @@ -23,7 +34,7 @@ class HugeTable(wxPyGridTableBase): return 10000 def IsEmptyCell(self, row, col): - return false + return False def GetValue(self, row, col): return str( (row, col) ) @@ -36,35 +47,40 @@ class HugeTable(wxPyGridTableBase): -class HugeTableGrid(wxGrid): +class HugeTableGrid(gridlib.Grid): def __init__(self, parent, log): - wxGrid.__init__(self, parent, -1) + gridlib.Grid.__init__(self, parent, -1) table = HugeTable(log) # The second parameter means that the grid is to take ownership of the # table and will destroy it when done. Otherwise you would need to keep # a reference to it and call it's Destroy method later. - self.SetTable(table, true) + self.SetTable(table, True) + + self.Bind(gridlib.EVT_GRID_CELL_RIGHT_CLICK, self.OnRightDown) + def OnRightDown(self, event): + print "hello" + print self.GetSelectedRows() #--------------------------------------------------------------------------- -class TestFrame(wxFrame): +class TestFrame(wx.Frame): def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, "Huge (virtual) Table Demo", size=(640,480)) + wx.Frame.__init__(self, parent, -1, "Huge (virtual) Table Demo", size=(640,480)) grid = HugeTableGrid(self, log) - + grid.SetReadOnly(5,5, True) #--------------------------------------------------------------------------- if __name__ == '__main__': import sys - app = wxPySimpleApp() + app = wx.PySimpleApp() frame = TestFrame(None, sys.stdout) - frame.Show(true) + frame.Show(True) app.MainLoop()