让Tkinter控件获取焦点
我有一个脚本,它使用Tkinter来弹出一个窗口显示消息。请问我怎么才能确保这个窗口是最前面的,这样用户就不会错过它,并且必须主动关闭这个窗口。代码如下:
root = Tk()
to_read = "Stuff"
w = Label(root, text=to_read)
w.pack()
root.mainloop()
2 个回答
2
21
你可以使用 focus_force
方法。看看下面的内容:
但是要注意文档中的说明:
w.focus_force()
这个方法会强制把输入焦点放到这个小部件上。这有点不礼貌。最好还是等窗口管理器来给你焦点。下面还有 .grab_set_global() 的相关内容。
更新:这个方法应该可以在 root
上使用。比如,试试运行下面的代码。它会创建一个窗口,你可以在窗口之间切换焦点。5秒后,它会尝试抢占焦点。
from Tkinter import *
root = Tk()
root.after(5000, lambda: root.focus_force())
root.mainloop()