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

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