X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..c67d60484ba5ad5f4ccc6739d29a0fcf23d20199:/wxPython/demo/GridSimple.py diff --git a/wxPython/demo/GridSimple.py b/wxPython/demo/GridSimple.py index 5f23c26dc8..bafd643cf2 100644 --- a/wxPython/demo/GridSimple.py +++ b/wxPython/demo/GridSimple.py @@ -7,6 +7,9 @@ class SimpleGrid(wxGrid): def __init__(self, parent, log): wxGrid.__init__(self, parent, -1) self.log = log + self.moveTo = None + + EVT_IDLE(self, self.OnIdle) self.CreateGrid(25, 25) @@ -30,6 +33,9 @@ class SimpleGrid(wxGrid): # you can set cell attributes for the whole row (or column) self.SetRowAttr(5, attr) + self.SetColLabelValue(0, "Custom") + self.SetColLabelValue(1, "column") + self.SetColLabelValue(2, "labels") # test all the events EVT_GRID_CELL_LEFT_CLICK(self, self.OnCellLeftClick) @@ -110,15 +116,43 @@ class SimpleGrid(wxGrid): (evt.GetTopLeftCoords(), evt.GetBottomRightCoords())) evt.Skip() + def OnCellChange(self, evt): self.log.write("OnCellChange: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() + + # Show how to stay in a cell that has bad data. We can't just + # call SetGridCursor here since we are nested inside one so it + # won't have any effect. Instead, set coordinants to move to in + # idle time. + value = self.GetCellValue(evt.GetRow(), evt.GetCol()) + if value == 'no good': + self.moveTo = evt.GetRow(), evt.GetCol() + + def OnIdle(self, evt): + if self.moveTo != None: + self.SetGridCursor(self.moveTo[0], self.moveTo[1]) + self.moveTo = None + + def OnSelectCell(self, evt): self.log.write("OnSelectCell: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() + + # Another way to stay in a cell that has a bad value... + row = self.GetGridCursorRow() + col = self.GetGridCursorCol() + if self.IsCellEditControlEnabled(): + self.HideCellEditControl() + self.DisableCellEditControl() + value = self.GetCellValue(row, col) + if value == 'no good 2': + return # cancels the cell selection + else: + evt.Skip() + + def OnEditorShown(self, evt): self.log.write("OnEditorShown: (%d,%d) %s\n" % @@ -151,3 +185,5 @@ if __name__ == '__main__': #--------------------------------------------------------------------------- + +