Create a Yes/No Message Box in Python using tkinter Last Updated : 12 Jul, 2025 Comments Improve Suggest changes 3 Likes 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. message: information for the user. Syntax: destroy() This method destroys a widget. Create the canvas for the button will be placed root=tk.Tk() canvas=tk.Canvas(root, width=200, height=200) canvas.pack() Explanation: Syntax:Tk(screenName=None, baseName=None, className=’Tk’, useTk=1) 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) Create the button and place it inside the canvas b=Button(root, text='Quit Application', command=call) canvas.create_window(100, 100, window=b) Explanation: Syntax:Button(master=None, options) Parameter: master: Here root is the parent window. 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 box import tkinter as tk from tkinter import * from tkinter import messagebox as mb 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') # Driver's code root = 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() Output: Create Quiz Comment S Shreyasi_Chakraborty Follow 3 Improve S Shreyasi_Chakraborty Follow 3 Improve Article Tags : Python Python-tkinter Explore Python FundamentalsPython Introduction 2 min read Input and Output in Python 4 min read Python Variables 4 min read Python Operators 4 min read Python Keywords 2 min read Python Data Types 8 min read Conditional Statements in Python 3 min read Loops in Python - For, While and Nested Loops 5 min read Python Functions 5 min read Recursion in Python 4 min read Python Lambda Functions 5 min read Python Data StructuresPython String 5 min read Python Lists 4 min read Python Tuples 4 min read Python Dictionary 3 min read Python Sets 6 min read Python Arrays 7 min read List Comprehension in Python 4 min read Advanced PythonPython OOP Concepts 11 min read Python Exception Handling 5 min read File Handling in Python 4 min read Python Database Tutorial 4 min read Python MongoDB Tutorial 3 min read Python MySQL 9 min read Python Packages 10 min read Python Modules 3 min read Python DSA Libraries 15 min read List of Python GUI Library and Packages 3 min read Data Science with PythonNumPy Tutorial - Python Library 3 min read Pandas Tutorial 4 min read Matplotlib Tutorial 5 min read Python Seaborn Tutorial 3 min read StatsModel Library - Tutorial 3 min read Learning Model Building in Scikit-learn 6 min read TensorFlow Tutorial 2 min read PyTorch Tutorial 6 min read Web Development with PythonFlask Tutorial 8 min read Django Tutorial | Learn Django Framework 7 min read Django ORM - Inserting, Updating & Deleting Data 4 min read Templating With Jinja2 in Flask 6 min read Django Templates 5 min read Build a REST API using Flask - Python 3 min read Building a Simple API with Django REST Framework 3 min read Python PracticePython Quiz 1 min read Python Coding Practice 1 min read Python Interview Questions and Answers 15+ min read Like