我是Python的新手,我正在尝试使用Tkinter创建一个简单的GUI.
因此,在许多用户界面中,按Tab键按钮会将焦点从一个Text小部件更改为另一个.每当我在Text小部件中时,tab只会缩进文本光标.
有谁知道这是否可配置?
Bry*_*ley 19
这对Tkinter来说非常容易.
要做到这一点,必须要做几件事.首先,您需要确保不会发生标准行为.也就是说,您不希望tab同时插入选项卡并将焦点移动到下一个窗口小部件.默认情况下,事件在标准行为发生之前由特定小部件处理(通常在类绑定中).Tk有一个简单的内置机制来阻止事件进一步处理.
其次,您需要确保将焦点发送到适当的小部件.内置支持确定下一个小部件是什么.
例如:
def focus_next_window(event):
event.widget.tk_focusNext().focus()
return("break")
text_widget=Text(...)
text_widget.bind("<Tab>", focus_next_window)
Run Code Online (Sandbox Code Playgroud)
关于此代码的重点:
tk_focusNext()返回键盘遍历层次结构中的下一个窗口小部件.focus()将焦点设置为该窗口小部件"break"是至关重要的,因为它阻止了类绑定的触发.正是这个类绑定插入了您不想要的制表符.如果您希望应用程序中的所有文本窗口小部件都具有此行为,则可以使用该bind_class()方法而不是bind()使此绑定影响所有文本窗口小部件.
您还可以将绑定发送焦点放在非常特定的小部件上,但我建议坚持使用默认的遍历顺序,然后确保遍历顺序正确.
| 归档时间: |
|
| 查看次数: |
9951 次 |
| 最近记录: |