我有一个脚本,使用Tkinter弹出一个带有消息的窗口 . 如何确保它获得焦点,以便用户不会错过它并明确地必须关闭窗口 . 代码是:
root = Tk() to_read = "Stuff" w = Label(root, text=to_read) w.pack() root.mainloop()
您可以使用 focus_force 方法 . 请参阅以下内容:
focus_force
但请注意文档:
w.focus_force()强制输入焦点到小部件 . 这是不礼貌的 . 最好等待窗口管理器为您提供焦点 . 另请参见下面的.grab_set_global() .
更新:它应该在 root 上工作 . 例如,尝试运行以下代码 . 它将创建一个窗口,您可以切换焦点 . 5秒后,它将尝试 grab 焦点 .
root
from Tkinter import * root = Tk() root.after(5000, lambda: root.focus_force()) root.mainloop()
对我有用的是:
root.wm_attributes("-topmost", 1) root.focus_force()
我在win32中发现了这个和其他一些方法here
2 回答
您可以使用
focus_force
方法 . 请参阅以下内容:但请注意文档:
更新:它应该在
root
上工作 . 例如,尝试运行以下代码 . 它将创建一个窗口,您可以切换焦点 . 5秒后,它将尝试 grab 焦点 .对我有用的是:
我在win32中发现了这个和其他一些方法here