Python | focus_set() and focus_get() method (original) (raw)
Last Updated : 25 Jun, 2019
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.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-
Python3 `
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()
`
Output:
You may observe in above image that Button widget has the focus. For better understanding copy and run above program.
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 -
Python3 `
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("", lambda e: focus(e))
infinite loop
mainloop()
`
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.
.!radiobutton has focus .!entry has focus .!button has focus