How to handle, when tkinter window gets focus How to handle, when tkinter window gets focus tkinter tkinter

How to handle, when tkinter window gets focus


You can bind a function to the <FocusIn> event. When you bind to the root window the binding is applied to every widget in the root window, so if you only want to do something when the window as a whole gets focus you'll need to compare event.widget to the root window.

For example:

import Tkinter as tkdef handle_focus(event):    if event.widget == root:        print("I have gained the focus")root = tk.Tk()entry1 = tk.Entry(root)entry2 = tk.Entry(root)entry1.pack()entry2.pack()root.bind("<FocusIn>", handle_focus)root.mainloop()


"Note that WM_SAVE_YOURSELF is deprecated, and Tk apps can't implement WM_TAKE_FOCUS or _NET_WM_PING correctly, so WM_DELETE_WINDOW is the only one that should be used".Here's a link!If you need to keep tkinter focus all the time:

w.wm_attributes("-topmost", 1)

does a pretty good job.