HOWTO · Tkinter

Wie man ein Tkinter-Fenster mit einer Schaltfläche schließt

Dieses Tutorial führt ein, wie man ein Tkinter-Fenster mit einer Schaltfläche schließt, an die eine Funktion oder ein Befehl angehängt ist

Auf dieser Seite

Wir können eine Funktion oder einen Befehl verwenden, der an eine Schaltfläche in der Tkinter-GUI angehängt ist, um das Tkinter-Fenster zu schließen, wenn der Benutzer darauf klickt.

root.destroy() Klassenmethode zum Schließen des Tkinter-Fensters

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() zerstört oder schließt das Fenster.

Tkinter schließt ein Fenster mit einem Knopf

destroy() Nicht-Klassen-Methode zum Schließen des Tkinter-Fensters

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()

Ordnen Sie die Funktion root.destroy direkt dem Attribut command des Buttons zu

Wir könnten die root.destroy Funktion direkt an das command Attribut des Buttons binden, ohne die zusätzliche Funktion close_window zu definieren.

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 zum Schließen des Tkinter-Fensters

root.quit beendet nicht nur das Tkinter-Fenster, sondern genauer gesagt den gesamten Tcl-Interpreter.

Es könnte verwendet werden, wenn Ihre Tkinter-Anwendung nicht von Python aus im Leerlauf initiiert wird. Es wird nicht empfohlen, root.quit zu benutzen, wenn Ihre Tkinter-Anwendung aus dem Leerlauf heraus aufgerufen wird, da quit nicht nur Ihre Tkinter-Anwendung, sondern auch den Leerlauf beendet, da der Leerlauf ebenfalls eine Tkinter-Anwendung ist.

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()