在搜索了很长时间后,我找到了一个解决方案(非常简单),可以使用 Tab 键在树视图网格的单元格之间移动,并在编辑模式下维护单元格。
现在我遇到了一个问题:只有在按下 Enter 键后才会确认单元格编辑。如果我按 Tab 键,则会触发一个 editor_canceled 事件。
如何解决?如何在 Tab 键按下时也允许数据确认?
这是我的树视图按键事件的事件处理程序:
def key_tree_Tab(self, treeview, event,namewidget):
path, col = treeview.get_cursor()
## only visible columns!!
columns = [c for c in treeview.get_columns() if c.get_visible()]
colnum = columns.index(col)
if event.keyval==65289:
if colnum + 1 < len(columns):
next_column = columns[colnum + 1]
treeview.set_cursor(path,next_column,start_editing=True)
else:
tmodel = treeview.get_model()
titer = tmodel.iter_next(tmodel.get_iter(path))
if titer is None:
titer = tmodel.get_iter_first()
path = tmodel.get_path(titer)
next_column = columns[0]
treeview.set_cursor(path,next_column,start_editing=True)
return True
谢谢大家!!!!