Caixas de Diálogo Nativas em Python: Alertas Simples com tkinter.messagebox

Caixas de Diálogo Nativas em Python: Alertas Simples com tkinter.messagebox

Exibir alertas e pedir confirmações ao usuário é fundamental para criar interfaces gráficas funcionais e evitar ações acidentais. Utilizando o módulo nativo tkinter.messagebox, você consegue disparar caixas de diálogo e caixas de confirmação estilizadas diretamente pelo sistema operacional, sem a necessidade de instalar bibliotecas de terceiros.

Python
import tkinter as tk
from tkinter import messagebox

def exibir_popups():
    # Oculta a janela principal do Tkinter para exibir apenas os alertas
    root = tk.Tk()
    root.withdraw()

    # 1. Pop-up de Aviso/Informação simples
    messagebox.showinfo("Aviso de Sistema", "A operação foi concluída com sucesso!")

    # 2. Pop-up de Confirmação (Retorna True se 'Sim' ou False se 'Não')
    resposta = messagebox.askyesno("Confirmação", "Deseja realmente excluir este arquivo?")

    if resposta:
        print("Ação confirmada: O arquivo será excluído.")
    else:
        print("Ação cancelada pelo usuário.")

    # Destrói a instância oculta para liberar memória
    root.destroy()

# Exemplo prático de uso
if __name__ == "__main__":
    exibir_popups()

Pontos-chave

  • Ocultação da Janela Principal (root.withdraw()): Por padrão, o Tkinter cria uma janela principal em branco ao ser inicializado. Executar o método .withdraw() oculta essa janela, deixando visível apenas a caixa de diálogo do pop-up.

  • Tipos de Pop-up Disponíveis: O módulo oferece métodos especializados para diferentes contextos, como showinfo() (informação), showwarning() (alerta), showerror() (erro) e askyesno() ou askokcancel() (confirmações).

  • Retorno Booleano: Funções de confirmação como askyesno() retornam valores booleanos reais (True ou False), facilitando a tomada de decisão em blocos condicionais if/else.

  • Ambiente Linux sem GUI: Em servidores Linux sem interface gráfica (ambiente headless sem servidor X/Wayland), o script lançará um erro do tipo TclError. O módulo exige um ambiente com suporte visual ativo.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Python para Computação Quântica: Introdução com Qiskit

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server