在Tkinter中如何移除小部件的焦点?

12 投票
6 回答
23069 浏览
提问于 2025-04-16 07:44

我想手动取消一个小部件的焦点。

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()

把焦点放在一个不能被聚焦的控件上,会把焦点从另一个控件上移开。

撰写回答