如何使用按鈕關閉 Tkinter 視窗

Jinku Hu 2023年1月30日 2019年12月2日
  1. root.destroy() 類方法關閉 Tkinter 視窗
  2. destroy() 非類方法關閉 Tkinter 視窗
  3. 直接將 root.destroy 函式與按鈕的 command 屬性關聯
  4. root.quit 關閉 Tkinter 視窗
如何使用按鈕關閉 Tkinter 視窗

當使用者單擊 Tkinter 按鈕時,我們可以使用附加在按鈕上的函式或命令來關閉 Tkinter GUI。

root.destroy() 類方法關閉 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() 用來關閉視窗。

Tkinter 用按鈕關閉視窗

destroy() 非類方法關閉 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()

直接將 root.destroy 函式與按鈕的 command 屬性關聯

我們可以直接將 root.destroy 函式繫結到按鈕 command 屬性,而無需定義額外的 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 關閉 Tkinter 視窗

root.quit 不僅退出 Tkinter 視窗,而且退出整個 Tcl 直譯器。

如果你的 Tkinter 應用不是從 Python Idle 啟動的,可以使用這種方法。如果從 Idle 呼叫你的 Tkinter 應用程式,則不建議使用 root.quit,因為 quit 不僅會殺死你的 Tkinter 應用程式,還會殺死 Idle 本身,因為 Idle 也是 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

相關文章 - Tkinter Button