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.