0
我正在尋找一種方式讓用戶在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,就好像只選擇了我正在編輯的單元格一樣。我如何保持一個「記憶」多少個單元格被選中?謝謝你,