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

Split keyboard entry between two Tkinter widgets

我有一个 window,带有树视图和条目小部件。我希望能够在条目小部件中写入,同时仍然能够使用 up/down 箭头导航树视图。我尝试过几种方法:

  1. 将所有键盘事件发送到两个小部件(我尝试使用自定义 bind_tags,但未成功)
  2. 使用条目 <Up><Down> 绑定来导航树视图(我还没有找到一种直接的方法来上下移动具有多个父子的树,例如文件目录)
  3. 使用根 <Key> 绑定有选择地将原始键码发送到入口小部件,这样退格键和 left/right 箭头之类的东西就会按预期工作(我还没有遇到发送 keycodes/events 直接进入条目小部件)

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