Como Fechar uma Janela de Tkinter com um Botão

Jinku Hu 30 janeiro 2023 17 fevereiro 2020
  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()
Author: 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

Artigo relacionado - Tkinter Button