让Tkinter小部件成为焦点

时间:2010-10-01 18:57:18

标签: python user-interface tkinter

我有一个脚本,它使用Tkinter弹出一个带有消息的窗口。我如何确保它获得焦点,以便用户不会错过它,并明确地必须关闭窗口。代码是:

root = Tk()
to_read = "Stuff" 
w = Label(root, text=to_read)
w.pack()
root.mainloop()

2 个答案:

答案 0 :(得分:16)

您可以使用focus_force方法。请参阅以下内容:

但请注意文档:

  

w.focus_force()

     

强制输入焦点到窗口小部件。这是不礼貌的。最好等待窗口管理器为您提供焦点。另见下面的.grab_set_global()。

更新:它应该适用于root。例如,尝试运行以下代码。它将创建一个窗口,您可以切换焦点。 5秒后,它将尝试抓住焦点。

from Tkinter import *

root = Tk()
root.after(5000, lambda: root.focus_force())
root.mainloop()

答案 1 :(得分:2)

对我有用的是:

root.wm_attributes("-topmost", 1)
root.focus_force()

我在win32 here

中找到了这个以及其他一些方法