Я ищу способ редактировать данные навалом в сетке wxPython, немного как в Excel, когда вы выбираете диапазон, введите данные и нажмите shift- Войти. Это упрощенная версия моей сетки:wxpython grid: редактирование нескольких ячеек (ala Excel)
class MyGrid(gridlib.Grid):
def __init__(self, panel):
gridlib.Grid.__init__(self, panel)
self.Bind(gridlib.EVT_GRID_CELL_CHANGE, self.onEditCell)
self.Bind(gridlib.EVT_GRID_RANGE_SELECT, self.onSelection)
def onSelection(self, event):
if self.GetSelectionBlockTopLeft() == []:
self.selected_row_number = 0
self.selected_col_number = 0
else:
self.selected_row_number = self.GetSelectionBlockBottomRight()[0][0] - self.GetSelectionBlockTopLeft()[0][0] + 1
self.selected_col_number = self.GetSelectionBlockBottomRight()[0][1] - self.GetSelectionBlockTopLeft()[0][1] + 1
print self.selected_row_number, self.selected_col_number
def onEditCell(self,event):
print self.selected_row_number, self.selected_col_number
Проблема, кажется, что событие onEditCell перезаписывает предыдущий выбор. Поэтому я могу выбрать, например. четыре на четыре блока в сетке, а onSelection будет печатать 4 4. Но когда я начну вводить текст и нажимаю Enter, onEditCell будет печатать 0,0, как если бы была выбрана только ячейка, которую я редактирую. Как я могу сохранить «память» о том, сколько ячеек выбрано? Спасибо,