Create a Yes/No Message Box in Python using tkinter
Last Updated : 26 Mar, 2020
Comments
Improve
Suggest changes
Like Article
Like
Report
Python offers a number Graphical User Interface(GUI) framework but Tk interface or tkinter is the most widely used framework. It is cross-platform which allows the same code to be run irrespective of the OS platform (Windows, Linux or macOS). Tkinter is lightweight, faster and simple to work with. Tkinter provides a variety of widgets that can be customized using standard attributes and geometry management methods. The Tkinter message box can be used to ask questions or display messages to the user.
Note: For more information, refer to Python GUI – tkinter
Steps to create a tkinter message box :
Import tkinter module
import tkinter as tk
from tkinter import *
Note: Name of the module in Python 2.x is ‘Tkinter’ and in Python 3.x it is ‘tkinter’. Python 3.x is used here.
Import tkinter messagebox widget
from tkinter import messagebox as mb
Create the method that is called to display the Yes/No Message Box
def call():
res=mb.askquestion('Exit Application', 'Do you really want to exit')
if res == 'yes' :
root.destroy()
else :
mb.showinfo('Return', 'Returning to main application')
Explanation:Syntax:
askquestion(title=None, message=None, **options)
Parameter
title: used to give a name which is displayed in as header of the dialog box.
message: question for the user.
Return value: Returns 'yes' when the yes option is clicked and 'no' when the no option is clicked.
Syntax:
showinfo(title=None, message=None, **options)
Parameter
title: used to give a name which is displayed in as header of the dialog box.
Used to create the parent window. Tk class is instantiated without any arguments.The name of the parent window can be changed to desired one by changing the value of className argument. Here 'root' is the parent window.
Syntax:
Canvas(master, option=value)
Parameter:
master: used to represent the parent window.Here 'root' is the master.
option: used to specify border, background color, height, width etc .
Return Value: The method returns a string (.!canvas) .
Syntax:
pack(**options)
Organizes the widgets in blocks before placing in the parent widget.The options can be used to expand, fill and specify side(left, right, top, bottom)
options:There are a number of supported options. The options used in this case are text and command.
text: button text
command: the action or method that is to be invoked when the button is pressed.
Return Value: The method returns a string (.!button) .
Syntax:
create_window(x, y, **options)
Parameter:
x, y: Specifies the position of the widget(button) within the canvas.
options: There are a variety of options supported like anchor, height, width, state, tags, window. The option used here is window.
window: window=b where b is the widget(button) to be placed on the canvas.
Return Value: Returns the object ID for the window object.
Call the mainloop() method
root.mainloop()
Explanation:Syntax:
mainloop()
It is an infinite loop that is called when the program is ready to be run.It waits for an event(mouse clicks) to occur and as soon as the event is received the event is processed.The mainloop() runs as long as the parent window is not destroyed.
The complete program is as follows: Python3 1==
# Python program to create # yes/no message boximporttkinterastkfromtkinterimport*fromtkinterimportmessageboxasmbdefcall():res=mb.askquestion('Exit Application','Do you really want to exit')ifres=='yes':root.destroy()else:mb.showinfo('Return','Returning to main application')# Driver's coderoot=tk.Tk()canvas=tk.Canvas(root,width=200,height=200)canvas.pack()b=Button(root,text='Quit Application',command=call)canvas.create_window(100,100,window=b)root.mainloop()
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
acknowledge that you have read and understood our
Cookie Policy &
Privacy Policy
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.