Tkinter askyesno

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:

Tkinter askyesno

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 yesbotão, a função retorna True. Porém, se você clicar no nobotã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, Trueou 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:

Tkinter asskyesno exemplo

Ao clicar no Quitbotão, será exibida uma caixa de diálogo de confirmação:

Função Tkinter asskyesno

Se você clicar no yesbotã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 retorna Truese você clicar no botão sim, caso contrário, ela retorna False.
  • A askquestion()função retorna uma string com o valor 'yes'ou 'no'.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *