HOWTO · Tkinter

Como Fechar uma Janela de Tkinter com um Botão

Este tutorial introduz como fechar uma janela do Tkinter com um botão que tem uma função ou comando anexado a ela

Nesta página

Podemos usar uma função ou comando ligado a um botão na GUI do Tkinter para fechar a janela do Tkinter quando o usuário clica nela.

Método de classe para fechar a janela do Tkinter

try:
    import Tkinter as tk
except:
    import tkinter as tk


class Test:
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry("100x50")
        button = tk.Button(self.root, text="Click and Quit", command=self.quit)
        button.pack()
        self.root.mainloop()

    def quit(self):
        self.root.destroy()


app = Test()

destroy() destrói ou fecha a janela.

Tkinter fecha uma janela com um botão

destroy() Método sem classe para fechar a janela do Tkinter

try:
    import Tkinter as tk
except:
    import tkinter as tk

root = tk.Tk()
root.geometry("100x50")


def close_window():
    root.destroy()


button = tk.Button(text="Click and Quit", command=close_window)
button.pack()

root.mainloop()

Associar a função root.destroy ao atributo command do botão diretamente

Poderíamos ligar diretamente a função root.destroy ao atributo command do botão sem definir mais a função extra close_window.

try:
    import Tkinter as tk
except:
    import tkinter as tk

root = tk.Tk()
root.geometry("100x50")

button = tk.Button(text="Click and Quit", command=root.destroy)
button.pack()

root.mainloop()

root.quit para fechar a Janela Tkinter

O root.quit deixa não só a Janela Tkinter, mas mais precisamente todo o intérprete Tcl.

Ele pode ser usado se a sua aplicação Tkinter não for iniciada a partir de Python idle. Não é recomendado utilizar o root.quit se a sua aplicação Tkinter for chamada do modo ocioso porque o quit não só matará a sua aplicação Tkinter como também o modo ocioso porque o modo ocioso também é uma aplicação Tkinter.

try:
    import Tkinter as tk
except:
    import tkinter as tk

root = tk.Tk()
root.geometry("100x50")

button = tk.Button(text="Click and Quit", command=root.quit)
button.pack()

root.mainloop()