Python | focus_set() and focus_get() method
Last Updated :
25 Jun, 2019
Improve
Tkinter has a number of widgets to provide functionality in any GUI. It also supports a variety of universal widget methods which can be applied on any of the widget.
Python3
Output:
You may observe in above image that Button widget has the focus. For better understanding copy and run above program.
Python3
Output: Every time you click on any widget OR if you click the mouse button-1 above program will print the name of the widget which has the focus. For better understanding copy and run above program.
focus_get()
and focus_set()
methods are also universal widget methods. They can also be applied on Tk()
method.
focus_set() method-
This method is used to set the focus on the desired widget if and only if the master window is focused. Syntax:widget.focus_set()Below is the Python program-
# Importing tkinter module
# and all functions
from tkinter import *
from tkinter.ttk import *
# creating master window
master = Tk()
# Entry widget
e1 = Entry(master)
e1.pack(expand = 1, fill = BOTH)
# Button widget which currently has the focus
e2 = Button(master, text ="Button")
# here focus_set() method is used to set the focus
e2.focus_set()
e2.pack(pady = 5)
# Radiobuton widget
e3 = Radiobutton(master, text ="Hello")
e3.pack(pady = 5)
# Infinite loop
mainloop()

focus_get() method-
This method returns the name of the widget which currently has the focus. Syntax:master.focus_get()Note: You can use it with any of the widget, master in not necessary. Below is the Python program -
# Importing tkinter module
# and all functions
from tkinter import *
from tkinter.ttk import *
# creating master window
master = Tk()
# This method is used to get
# the name of the widget
# which currently has the focus
# by clicking Mouse Button-1
def focus(event):
widget = master.focus_get()
print(widget, "has focus")
# Entry widget
e1 = Entry(master)
e1.pack(expand = 1, fill = BOTH)
# Button Widget
e2 = Button(master, text ="Button")
e2.pack(pady = 5)
# Radiobutton widget
e3 = Radiobutton(master, text ="Hello")
e3.pack(pady = 5)
# Here function focus() is binded with Mouse Button-1
# so every time you click mouse, it will call the
# focus method, defined above
master.bind_all("<Button-1>", lambda e: focus(e))
# infinite loop
mainloop()
.!radiobutton has focus .!entry has focus .!button has focus