在Tkinter中如何移除小部件的焦点?
我想手动取消一个小部件的焦点。
6 个回答
4
我的解决办法是 root.focus()
,这样可以取消小部件的焦点。
5
- 把焦点转移到另一个控件上,以此来让目标控件失去焦点,这个主意不错。有两种方法可以做到这一点:
w.focus_set()
和w.focus_force()
。不过,w.focus_force()
这个方法有点不礼貌。最好还是等窗口管理器来给你设置焦点。把焦点设置到父控件或者根窗口上,就能让目标控件失去焦点。 - 有些控件有一个叫
takefocus
的选项。把takefocus
设置为 0,可以让你的控件在用户按<Tab>
键时不参与焦点的切换。
8
你可以把注意力转移到另一个无关紧要的控件上。
编辑
from Tkinter import *
def callback():
print master.focus()
master = Tk()
e = Entry(master)
e.pack()
e.focus()
b = Button(master, text="get", width=10, command=callback)
b.pack()
master.mainloop()
把焦点放在一个不能被聚焦的控件上,会把焦点从另一个控件上移开。