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