在 tkinter 中正确绑定 Tab 键

Correctly binding the tab key in tkinter

提问人:bookofproofs 提问时间:8/22/2021 更新时间:8/23/2021 访问量:1354

问:

我正在尝试覆盖 tkinter 文本小部件内 tab 键的标准行为。我在尝试

from tkinter import *


def enter_return(event):
    print("Return")


def enter_tab(event):
    print("Tab")


root = Tk()
t = Text(root, height=20, width=30)
t.pack()

t.bind_all('<Return>', enter_return)
t.bind_all('<Tab>', enter_tab)
mainloop()

但是当我运行该代码时,当我按回车键时,只会调用该函数。当我按 Tab 键时,不被调用。为什么会这样,我该如何解决?enter_return()enter_tab()

我在 Windows 上。

特金特 制表符 关键事件

评论

1赞 TheLizzard 8/22/2021
使用代替 .此外,如果您不希望插入选项卡,您可能希望从您的函数中插入。.bind(...).bind_all(...)return "break"enter_tab

答:

-1赞 Roy D. 8/22/2021 #1
root.bind("<Tab>", enter_tab)

希望将 Tab 键事件绑定到主窗口将实现您的目标

评论

1赞 TheLizzard 8/22/2021
你想让OP在文学上使用吗?还是想让 OP 使用?如果是后者,请让它更明显一点。root.bind("", enter_tab)root.bind("<Tab>", enter_tab)
0赞 bookofproofs 8/22/2021
它没有用。此外,应该将其绑定到所有小部件,包括 root?!bind_all
0赞 bookofproofs 8/22/2021 #2

更改以解决我的问题。但是,相比之下,我不明白为什么以及为什么仍在工作。t.bind_all('<Tab>', enter_tab)t.bind('<Tab>', enter_tab)t.bind_all('<Return>', enter_return)