📜  如何使用按钮关闭 Tkinter 窗口?

📅  最后修改于: 2022-05-13 01:54:33.968000             🧑  作者: Mango

如何使用按钮关闭 Tkinter 窗口?

先决条件: Tkinter

Python 的 Tkinter 模块提供了 Button函数,可以在 Tkinter 窗口中创建一个按钮,以便在单击该按钮后执行任何任务。可以在Button()函数的命令参数中分配任务。下面给出了可以实现这一点的各种方法。

方法一:使用 destroy() 非类方法

方法:

  • 导入 tkinter 模块。
  • 创建一个名为 root 的主窗口。
  • 添加一个按钮。
  • root.destroy分配给该按钮的命令属性。

例子: 直接在命令属性中使用 destroy()

Python3
# Python program to create a close button
# using destroy Non-Class method
from tkinter import *
  
# Creating the tkinter window
root = Tk()
root.geometry("200x100")
  
# Button for closing
exit_button = Button(root, text="Exit", command=root.destroy)
exit_button.pack(pady=20)
  
root.mainloop()


Python3
# Python program to create a close button
# using destroy Non-Class method
from tkinter import *
  
# Creating the tkinter window
root = Tk()
root.geometry("200x100")
  
# Function for closing window
  
  
def Close():
    root.destroy()
  
  
# Button for closing
exit_button = Button(root, text="Exit", command=Close)
exit_button.pack(pady=20)
  
root.mainloop()


Python3
# Python program to create a close button
# using destroy Class method
from tkinter import *
  
# Class for tkinter window
  
  
class Window():
    def __init__(self):
  
        # Creating the tkinter Window
        self.root = Tk()
        self.root.geometry("200x100")
  
        # Button for closing
        exit_button = Button(self.root, text="Exit", command=self.root.destroy)
        exit_button.pack(pady=20)
  
        self.root.mainloop()
  
  
# Running test window
test = Window()


Python3
# Python program to create a close button
# using destroy Class method
from tkinter import *
  
# Class for tkinter window
  
  
class Window():
    def __init__(self):
  
        # Creating the tkinter Window
        self.root = Tk()
        self.root.geometry("200x100")
  
        # Button for closing
        exit_button = Button(self.root, text="Exit", command=self.Close)
        exit_button.pack(pady=20)
  
        self.root.mainloop()
  
    # Function for closing window
    def Close(self):
        self.root.destroy()
  
  
# Running test window
test = Window()


Python3
# Python program to create a close button
# using quit method
from tkinter import *
  
# Creating the tkinter window
root = Tk()
root.geometry("200x100")
  
# Button for closing
exit_button = Button(root, text="Exit", command=root.quit)
exit_button.pack(pady=20)
  
root.mainloop()
exit(0)


示例:在函数中使用 destroy()

蟒蛇3

# Python program to create a close button
# using destroy Non-Class method
from tkinter import *
  
# Creating the tkinter window
root = Tk()
root.geometry("200x100")
  
# Function for closing window
  
  
def Close():
    root.destroy()
  
  
# Button for closing
exit_button = Button(root, text="Exit", command=Close)
exit_button.pack(pady=20)
  
root.mainloop()

输出:

方法二:使用destroy()类方法

方法:

  • 导入 tkinter 模块。
  • 创建一个 tkinter 窗口类。
  • 创建一个名为 root 的主窗口。
  • 添加一个按钮。
  • root.destroy分配给该按钮的命令属性。

例子: 直接在命令属性中使用 destroy()

蟒蛇3

# Python program to create a close button
# using destroy Class method
from tkinter import *
  
# Class for tkinter window
  
  
class Window():
    def __init__(self):
  
        # Creating the tkinter Window
        self.root = Tk()
        self.root.geometry("200x100")
  
        # Button for closing
        exit_button = Button(self.root, text="Exit", command=self.root.destroy)
        exit_button.pack(pady=20)
  
        self.root.mainloop()
  
  
# Running test window
test = Window()

例子: 在函数中使用 destroy()

蟒蛇3

# Python program to create a close button
# using destroy Class method
from tkinter import *
  
# Class for tkinter window
  
  
class Window():
    def __init__(self):
  
        # Creating the tkinter Window
        self.root = Tk()
        self.root.geometry("200x100")
  
        # Button for closing
        exit_button = Button(self.root, text="Exit", command=self.Close)
        exit_button.pack(pady=20)
  
        self.root.mainloop()
  
    # Function for closing window
    def Close(self):
        self.root.destroy()
  
  
# Running test window
test = Window()

输出:

方法三:使用quit()方法

如果您从 IDLE 调用 Tkinter 应用程序,则此方法将无法正常工作,因为 quit() 将终止整个 TCL 解释器并导致主循环退出,而所有小部件都完好无损。因此,如果您使用除 IDLE 以外的任何其他编辑器/解释器,最好使用 quit()。或者,您可以在 mainloop 之后使用 exit()函数退出Python程序。

如果您的 Tkinter 应用程序是从IDLE执行的,则不建议使用quit() ,因为它会关闭解释器,让程序与其所有小部件一起运行。也不推荐这样做,因为它可能会在某些解释器中失败。

方法:

  • 导入 tkinter 模块。
  • 创建一个名为 root 的主窗口。
  • 添加一个按钮。
  • root.quit分配给该按钮的命令属性。
  • 调用mainloop后添加exit()函数

例子:

蟒蛇3

# Python program to create a close button
# using quit method
from tkinter import *
  
# Creating the tkinter window
root = Tk()
root.geometry("200x100")
  
# Button for closing
exit_button = Button(root, text="Exit", command=root.quit)
exit_button.pack(pady=20)
  
root.mainloop()
exit(0)

输出:

普通编辑器中的输出(VS Code)

空闲输出

Jupyter Notebook 中的输出