Como Fechar uma Janela de Tkinter com um Botão

Jinku Hu 30 janeiro 2023
  1. Método de classe para fechar a janela do Tkinter
  2. destroy() Método sem classe para fechar a janela do Tkinter
  3. Associar a função root.destroy ao atributo command do botão diretamente
  4. root.quit para fechar a Janela Tkinter
Como Fechar uma Janela de Tkinter com um Botão

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()
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artigo relacionado - Tkinter Button