使用Tkinter可以很容易地做到这一点。
要使此工作生效,必须完成几件事。首先,您需要确保标准行为 不会
发生。也就是说,您不希望标签页同时插入标签页并将焦点移至下一个小部件。默认情况下,事件是在发生标准行为之前(通常在类绑定中)由特定的窗口小部件处理的。Tk具有简单的内置机制,可停止事件的进一步处理。
其次,您需要确保将焦点发送到适当的小部件。内置支持确定下一个窗口小部件是什么。
例如:
def focus_next_window(event): event.widget.tk_focusNext().focus() return("break")text_widget=Text(...)text_widget.bind("<Tab>", focus_next_window)关于此代码的重点:
- 该方法
tk_focusNext()
返回键盘遍历层次结构中的下一个窗口小部件。 - 该方法
focus()
将焦点设置到该小部件 - 返回
"break"
是至关重要的,因为它可以防止触发类绑定。正是这种类绑定插入了不需要的制表符。
如果您希望应用程序中的所有文本小部件都具有此行为,则可以使用
bind_class()方法代替
bind()使该绑定影响所有文本小部件。
您也可以使绑定将焦点发送到非常特定的小部件,但我建议坚持使用默认的遍历顺序,然后确保遍历顺序正确。



