首页 文章

让Tkinter小部件成为焦点

提问于
浏览
9

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

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

2 回答

  • 2

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

    但请注意文档:

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

    更新:它应该在 root 上工作 . 例如,尝试运行以下代码 . 它将创建一个窗口,您可以切换焦点 . 5秒后,它将尝试 grab 焦点 .

    from Tkinter import *
    
    root = Tk()
    root.after(5000, lambda: root.focus_force())
    root.mainloop()
    
  • 15

    对我有用的是:

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

    我在win32中发现了这个和其他一些方法here

相关问题