Tkinter askyesno
Summary: in this tutorial, you’ll learn how to use the Tkinter askyesno()
function to show a dialog that asks for user confirmation.
Introduction to the Tkinter askyesno() function
Sometimes, you need to ask for user confirmation. For example, if users click the quit button, you want to ask whether they really want to close the application. Or they just accidentally do so:
To show a dialog that asks for user confirmation, you use the askyesno()
function.
The dialog will have a title, a message, and two buttons (yes and no).
When you click the yes
button, the function returns True
. However, if you click the no
button, it returns False
.
The following shows the syntax of the askyesno()
function:
answer = askyesno(title, message, **options)
Code language: Python (python)
Note that the answer
is a Boolean value, either True
or False
.
Tkinter also has another function called askquestion()
, which is similar to the askyesno()
function except that it returns a string with a value of 'yes'
or 'no'
:
answer = askquestion(title, message, **options)
Code language: Python (python)
Tkinter askyesno() function example
The following program illustrates how to use the Tkinter askyesno()
function:
When you click the Quit
button, it’ll show a confirmation dialog:
If you click the yes
button, the application will be closed. Otherwise, it’ll stay.
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import askyesno# create the root window
root = tk.Tk()
root.title('Tkinter Yes/No Dialog')
root.geometry('300x150')
# click event handler
def confirm():
answer = askyesno(title='confirmation',
message='Are you sure that you want to quit?')
if answer:
root.destroy()
ttk.Button(
root,
text='Ask Yes/No',
command=confirm).pack(expand=True)
# start the app
root.mainloop()
Code language: Python (python)
The following is the same program but use the object-oriented programming approach:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import askyesno, askquestionclass App(tk.Tk):
def __init__(self):
super().__init__()
self.title('Tkinter Yes/No Dialog')
self.geometry('300x150')
# Quit button
quit_button = ttk.Button(self, text='Quit', command=self.confirm)
quit_button.pack(expand=True)
def confirm(self):
answer = askyesno(title='Confirmation',
message='Are you sure that you want to quit?')
if answer:
self.destroy()
if __name__ == "__main__":
app = App()
app.mainloop()
Code language: Python (python)
Summary
- Use the Tkinter
askyesno()
function to show a dialog that asks for user confirmation. - The
askyesno()
function returnsTrue
if you click the yes button, otherwise, it returnsFalse
. - The
askquestion()
function returns a string with a value of'yes'
or'no'
instead.