在两个Tkinter小部件之间拆分键盘输入

时间:2015-11-11 08:46:58

标签: python user-interface tkinter widget treeview

我有一个带有树视图和条目小部件的窗口。我希望能够在条目小部件中写入,同时仍然可以使用向上/向下箭头来导航树视图。我尝试过几种方法:

  1. 将所有键盘事件发送到两个小部件(我尝试使用自定义bind_tags,但未成功)
  2. 使用条目<Up><Down>绑定来导航树视图(我没有找到一种简单的方法来上下移动具有多个父项和子项的树,例如文件目录)< / LI>
  3. 使用根<Key>绑定选择性地将原始密钥代码发送到条目小部件,以便退格和左/右箭头按预期工作(我还没有遇到直接发送密钥代码/事件的方法到条目小部件)

1 个答案:

答案 0 :(得分:1)

你的#2是正确的方法。您必须编写计算如何在树上上下移动的方法。您可以获取当前选定的项目,然后使用.next()方法获取同一父项的下一个子项。如果返回一个空字符串,则可以获取父字符串(通过调用.parent())并在其上调用.next()。你可以递归地继续这样做,直到你到达树的末尾(父节点是根节点,.next()返回空字符串)。