Resumo : neste tutorial, você aprenderá como usar a askyesno()
função Tkinter para mostrar uma caixa de diálogo que solicita a confirmação do usuário.
Introdução à função Tkinter asskyesno()
Às vezes, você precisa pedir a confirmação do usuário. Por exemplo, se os usuários clicarem no botão sair, você deverá perguntar se eles realmente desejam fechar o aplicativo. Ou eles simplesmente fazem isso acidentalmente:
Para mostrar uma caixa de diálogo que solicita a confirmação do usuário, você usa a askyesno()
função.
A caixa de diálogo terá um título, uma mensagem e dois botões (sim e não).
Ao clicar no yes
botão, a função retorna True
. Porém, se você clicar no no
botão, ele retornará False
.
O seguinte mostra a sintaxe da askyesno()
função:
answer = askyesno(title, message, **options)
Linguagem de código: Python ( python )
Observe que the answer
é um valor booleano, True
ou False
.
Tkinter também tem outra função chamada askquestion()
, que é semelhante à askyesno()
função, exceto que retorna uma string com valor 'yes'
ou 'no'
:
answer = askquestion(title, message, **options)
Linguagem de código: Python ( python )
Exemplo de função Tkinter asskyesno()
O programa a seguir ilustra como usar a askyesno()
função Tkinter:
Ao clicar no Quit
botão, será exibida uma caixa de diálogo de confirmação:
Se você clicar no yes
botão, o aplicativo será fechado. Caso contrário, ficará.
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()
Linguagem de código: Python ( python )
O seguinte é o mesmo programa, mas usa a abordagem de programação orientada a objetos:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import askyesno, askquestion
class 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()
Linguagem de código: Python ( python )
Resumo
- Use a função Tkinter
askyesno()
para mostrar uma caixa de diálogo que solicita a confirmação do usuário. - A
askyesno()
função retornaTrue
se você clicar no botão sim, caso contrário, ela retornaFalse
. - A
askquestion()
função retorna uma string com o valor'yes'
ou'no'
.