Never mind, I used 2 different binds for the 2 different situations and it worked.
thanks for looking anyhow. -- Kiran Kiran wrote: > Hello All, > I created a grid, where I register events every time the user changes > an existing value inside the grid control. Right now, I am using the > event: EVT_GRID_CELL_CHANGE. However, I realized that I need to > register that same kind of event even if the user doesnt change the > value, but just selects and then deselects. > > I tried creating my own custom event, where i check to see if the > editor is activated and then deactivated, and if so, then set the sell > value. However, this doesnt work because the value that it needs to be > set to is the same previous value that was in the grid. Therefore, I > can never get a new value in the grid. Here is the code for the events: > > in init(): > self.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN, self.EditorShown) > self.Bind(wx.grid.EVT_GRID_EDITOR_HIDDEN, self.EditorHidden) > > > def EditorShown(self, event): > self.editorShown = True > event.Skip() > > def EditorHidden(self, event): > self.editorHidden = True > row = event.GetRow() > col = event.GetCol() > print "VAL = " + str(self.grid.GetCellValue(row, col)) > +str(self.OnTestCellValue(row, col)) > event.Skip() > > def OnTestCellValue(self, row, col): > if self.editorShown and self.editorHidden: > self.editorShown = False > self.editorHidden = False > self.SetCellValue(row, col) > > def SetCellValue(self, row, col): > print "EVENT PROCESSIGN STARTED" > print "RAW VAL = " + str(self.grid.GetCellValue(row, col)) > value = int(self.grid.GetCellValue(row, col), 16) > print "VAL = " + str(value) > # if we need to add a row > if row == (len(self.data)-1): > self.expandGrid() > self.data.append([]) > # if we need to delete a row > if row != 0 and value == '': > self.data[row][3] = 'Delete' > else: > self.addToData(row, col, value, True) > # whether the user intended a read or write > if self.data[row][3] != 'Delete': > if col == 1: > self.data[row][3] = 'Read' > elif col == 2: > self.data[row][3] = 'Write' > > q = copy.deepcopy(self.data) # cloning object > self.requestQueue.put(q) # putting object onto queue > print "EVENT PROCESSIGN ENDED" > > Thanks a lot for your help, and please mind the spacing. > > I should note that before, my bind was: > self.Bind(wx.grid.EVT_GTID_CELL_CHANGE, self.SetCellValue) > > > thanks, > Kiran -- http://mail.python.org/mailman/listinfo/python-list