-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
return 10000
def IsEmptyCell(self, row, col):
- return false
+ return False
def GetValue(self, row, col):
return str( (row, col) )
-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()