Cómo cerrar una ventana de Tkinter con un botón

Jinku Hu 30 enero 2023
  1. root.destroy() Método de clase para cerrar la ventana de Tkinter
  2. destroy() Método no-clase para cerrar la ventana de Tkinter
  3. Asociar la función root.destroy al atributo command del botón directamente
  4. root.quit para cerrar la ventana de Tkinter
Cómo cerrar una ventana de Tkinter con un botón

Podemos utilizar una función o comando adjunto a un botón de la interfaz gráfica de Tkinter para cerrar la ventana de Tkinter cuando el usuario hace clic en ella.

root.destroy() Método de clase para cerrar la ventana de 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() destruye o cierra la ventana.

Tkinter cierra una ventana con un botón

destroy() Método no-clase para cerrar la ventana de 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()

Asociar la función root.destroy al atributo command del botón directamente

Podríamos vincular directamente la función root.destroy al atributo del botón command sin definir más la función 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 cerrar la ventana de Tkinter

root.quit deja no sólo la ventana de Tkinter sino más precisamente todo el intérprete de Tcl.

Puede ser usado si su aplicación Tkinter no se inicia desde Python en reposo. No es recomendable utilizar root.quit si su aplicación Tkinter es llamada desde el idle porque quit no sólo matará su aplicación Tkinter sino también el idle porque el idle es también una aplicación 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

Artículo relacionado - Tkinter Button