Python | winfo_ismapped () and winfo_exist () in Tkinter

Python Methods and Functions

Tkinter provides many generic widget methods or base widget methods that work with almost all available widgets.

winfo_ismapped () method —

This method is used to test, whether the specified widget is visible or not.

Syntax: widget.winfo_ismapped ()
Return Value: Returns True if widget is visible (or mapped), otherwise returns False.
Exception: If widget is destroyed, then it throws error.

# Imports the tkinter and ttk module

from tkinter import *  

from tkinter.ttk import *  

import time

 
# top-level window

root = Tk ()

 

def forget (widget):

widget.forget ()

  print ( "After Forget method called. Is widget mapped? = " ,

  bool (widget.winfo_ismapped ()))

 

def retrieve (widget):

widget.pack ()

print ( "After retrieval of widget. Is widget mapped? =" ,

bool (widget.winfo_exists ()))

 
# Button widgets

b1 = Button (root, text = " Btn 1 " )

b1.pack ()

 
# This is used to make the widget invisible

b2 = Button (root, text = "Btn 2" , command = lambda : forget (b1))

b2.pack ()

 
# This will receive the widget

b3 = Button (root, text = " Btn 3 " , command = lambda : retrieve (b1))

b3.pack ()

  
# infinite loop, interrupted by keyboard or mouse
mainloop ()

Output:

method winfo_exists () —

This method is used to check if the specified widget exists or not, i.e. widget destroyed or not.

Syntax: widget.winfo_exists ()
Return value: Returns True if widget exists, False otherwise.

# Imports tkinter and ttk module

from tkinter import *  

from tkinter.ttk import *

 
# top-level window

root = Tk ()

 

def dest (widget):

  widget.destroy ()

print ( "Destroy method called. Widget exists? = " ,

  bool (widget.winfo_exists ()))

 

def exist (widget):

print ( "Checking for existance =" , bool (widget.winfo_exists ()))

 
# Button widgets

b1 = Button (root, text = " Btn 1 " )

b1.pack ()

 
# This is used to destroy the widget

b2 = Button (root, text = "Btn 2" , command = lambda : dest (b1))

b2.pack ()

 
# Used to check if the widget exists

b3 = Button (root, text = "Btn 3" , command = lambda : exist (b1))

b3.pack ()

 
# infinite loop, interrupted by keyboard or mouse
mainloop ()

Output:

Note: if the widget is destroyed, it cannot be restored again.





Get Solution for free from DataCamp guru