千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > tkinter关闭窗口事件用法介绍

tkinter关闭窗口事件用法介绍

来源:千锋教育
发布人:xqq
时间: 2023-11-25 12:25:00 1700886300

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中的关闭窗口事件。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT