0
wxPythonグリッドで一括してデータを編集する方法を探しています。範囲を選択してデータを入力してShift +入る。wxpythonグリッド:複数セル編集(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イベントは以前の選択を上書きすることのようだ:これは私のグリッドの簡易版です。だから私は例えばグリッドの4×4ブロック、onSelectionは4 4を出力します。しかし、入力を開始してEnterキーを押すと、onEditCellは編集中のセルだけが選択されたかのように0,0を出力します。どのように多くの細胞が選択されているかの「記憶」を維持するにはどうすればよいですか?自分の質問に答える