Tkinter Tutorials

Fechando Janelas Tkinter com Botões: Um Guia Completo

Spread the love

Tkinter é uma biblioteca Python popular para criar interfaces gráficas de usuário (GUIs). Uma tarefa comum é adicionar um botão que permite aos usuários fechar a janela de forma limpa. Este artigo explora vários métodos para alcançar isso, destacando suas diferenças e recomendando as melhores práticas.

Sumário

Usando o método destroy()

A abordagem mais comum e recomendada usa o método destroy(). Este método está associado ao objeto da janela principal (tipicamente chamado de root) e fecha a janela Tkinter de forma limpa, liberando os recursos associados.


import tkinter as tk

root = tk.Tk()
root.title("Exemplo de Fechamento de Janela")

def fechar_janela():
    root.destroy()

botao = tk.Button(root, text="Fechar Janela", command=fechar_janela)
botao.pack(pady=20)

root.mainloop()

Este código define uma função fechar_janela() que chama root.destroy(). Esta função é então vinculada ao atributo command do botão. Clicar no botão executa fechar_janela(), levando ao fechamento da janela.

Chamando destroy() diretamente

Para aplicativos mais simples, você pode atribuir root.destroy diretamente ao atributo command do botão, eliminando a necessidade de uma função separada:


import tkinter as tk

root = tk.Tk()
root.title("Exemplo de Fechamento de Janela")

botao = tk.Button(root, text="Fechar Janela", command=root.destroy)
botao.pack(pady=20)

root.mainloop()

Isso é mais conciso, mas pode reduzir a legibilidade em projetos maiores.

Usando o método quit()

O método quit() difere de destroy(). quit() apenas interrompe o loop principal de eventos, enquanto destroy() realmente destrói a janela e seus widgets. quit() é útil para cenários mais complexos em que você precisa de um controle mais preciso sobre o processo de fechamento, como a limpeza de recursos antes da janela ser destruída. No entanto, para o fechamento simples da janela, destroy() é preferível. O uso inadequado de quit() pode deixar processos órfãos.


import tkinter as tk

root = tk.Tk()
root.title("Exemplo de Fechamento de Janela")

def fechar_janela():
    root.quit()

botao = tk.Button(root, text="Fechar Janela", command=fechar_janela)
botao.pack(pady=20)

root.mainloop()

Isso demonstra root.quit(), mas root.destroy() permanece a opção mais segura e limpa para a maioria dos casos.

Abordagem Recomendada

Embora existam vários métodos, root.destroy() oferece a maneira mais direta e confiável de fechar uma janela Tkinter com um botão na maioria dos aplicativos. Sua simplicidade e comportamento claro o tornam a escolha preferida, a menos que seu aplicativo exija o controle mais preciso oferecido por root.quit().

Deixe um comentário

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