全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

tkinter关闭窗口事件用法介绍

发布时间:2023-11-25 12:25:00
发布人:xqq

tkinter是Python的一个标准库,为开发GUI应用程序提供了极大的便利。在GUI应用程序中,关闭窗口事件是一个常见的需求。本文将从多个方面对tkinter关闭窗口事件做详细的阐述,希望帮助读者更好地理解和应用该事件。

一、创建一个简单的窗口


import tkinter as tk

window = tk.Tk()
window.title('窗口标题')
window.geometry('400x300')
window.mainloop()

以上代码创建了一个简单的窗口。在窗口上方显示了一个标题栏和关闭、最小化、最大化三个按钮。

二、捕获关闭窗口事件


import tkinter as tk

def on_closing():
    if tk.messagebox.askokcancel("Quit", "是否确定退出?"):
        window.destroy()

window = tk.Tk()
window.title('窗口标题')
window.geometry('400x300')

window.protocol("WM_DELETE_WINDOW", on_closing)

window.mainloop()

以上代码演示了如何捕获关闭窗口事件。我们使用protocol()方法,将关闭按钮事件绑定到on_closing()函数。当用户点击关闭按钮时,会执行on_closing()函数中的逻辑。在该例中,我们显示了一个弹窗,询问用户是否确定退出。如果用户点击了确定按钮,我们使用destroy()方法销毁窗口。

需要注意的是,在Windows操作系统中点击关闭按钮时窗口并不会立刻销毁,而是触发关闭事件,需要在事件中调用destroy()方法来销毁窗口。

三、通过WM_DELETE_WINDOW关闭窗口


import tkinter as tk

def on_closing():
    if tk.messagebox.askokcancel("Quit", "是否确定退出?"):
        window.destroy()

window = tk.Tk()
window.title('窗口标题')
window.geometry('400x300')

window.protocol("WM_DELETE_WINDOW", on_closing)

window.mainloop()

以上代码演示了如何通过WM_DELETE_WINDOW关闭窗口。与第二个例子类似,我们仍然将关闭事件绑定到on_closing()函数。但是在该例中,我们可以直接点击关闭按钮来关闭窗口,而不需要单独编写关闭按钮的逻辑。

四、在tkinter窗口中使用Close按钮


import tkinter as tk

def on_closing():
    if tk.messagebox.askokcancel("Quit", "是否确定退出?"):
        window.destroy()

window = tk.Tk()
window.title('窗口标题')
window.geometry('400x300')

btn_close = tk.Button(window, text="Close", command=on_closing)
btn_close.pack()

window.mainloop()

以上代码演示了如何在tkinter窗口中使用Close按钮。我们创建了一个按钮并将其单击事件绑定到on_closing()函数。当用户单击Close按钮时,会触发该函数中的逻辑,并执行销毁窗口的操作。

五、在类中使用关闭窗口事件


import tkinter as tk

class MyWindow:
    def __init__(self, master):
        self.master = master
        self.master.title('窗口标题')
        self.master.geometry('400x300')
        self.create_widgets()
        self.master.protocol("WM_DELETE_WINDOW", self.on_closing)

    def create_widgets(self):
        self.btn_close = tk.Button(self.master, text="Close", command=self.on_closing)
        self.btn_close.pack()

    def on_closing(self):
        if tk.messagebox.askokcancel("Quit", "是否确定退出?"):
            self.master.destroy()

window = tk.Tk()
app = MyWindow(window)

window.mainloop()

以上代码演示了如何在类中使用关闭窗口事件。我们创建了一个名为MyWindow的类,该类继承了tkinter.Frame类,并实现了构造函数、create_widgets()函数和on_closing()函数。我们在构造函数中初始化了窗口的标题和尺寸,并将关闭事件绑定到on_closing()函数。create_widgets()函数用于创建Close按钮。on_closing()函数用于处理关闭事件,并执行销毁窗口的操作。

六、快捷键关闭窗口


import tkinter as tk

def on_closing():
    if tk.messagebox.askokcancel("Quit", "是否确定退出?"):
        window.destroy()

window = tk.Tk()
window.title('窗口标题')
window.geometry('400x300')

window.bind('', lambda event: on_closing())

window.mainloop()

以上代码演示了如何使用快捷键关闭窗口。我们使用bind()方法将Ctrl+q键绑定到on_closing()函数。当用户按下Ctrl+q键时,会触发on_closing()函数中的逻辑,并执行销毁窗口的操作。

七、总结

本文从多个方面对tkinter关闭窗口事件进行了详细的阐述,内容包括创建一个简单的窗口、捕获关闭窗口事件、通过WM_DELETE_WINDOW关闭窗口、在tkinter窗口中使用Close按钮、在类中使用关闭窗口事件以及使用快捷键关闭窗口等。希望本文能够帮助读者更好地理解和应用tkinter中的关闭窗口事件。

transforms.topilimage()

相关文章

从多个方面详述build:prod

从多个方面详述build:prod

2023-11-25
esp8266与stm32通信详解

esp8266与stm32通信详解

2023-11-25
Java Restful 接口开发

Java Restful 接口开发

2023-11-25
PyQt5LineEdit控件详解

PyQt5LineEdit控件详解

2023-11-25

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取