Yuri_L 发表于 2020-7-17 22:40:49

tkinter窗口沒有點擊關閉卻觸發了"WM_DELETE_WINDOW"的協議處理程序

本帖最后由 Yuri_L 于 2020-7-17 23:24 编辑

代碼如下:import tkinter as tk

root = tk.Tk()
root.geometry('180x167')
root.wm_protocol('WM_DELETE_WINDOW', print('EXIT'))
root.mainloop()

(等級不夠上傳圖片)
在谷歌和百度上搜索WM_DELETE_WINDOW的結果都只有"定义当用户使用窗口管理器显式关闭窗口时发生的情况"
但是我只是執行了代碼就觸發了處理函數
(系統:Windows, python版本:3.8.3)

Twilight6 发表于 2020-7-17 23:00:24


用简体呗老兄

Yuri_L 发表于 2020-7-17 23:20:01

Twilight6 发表于 2020-7-17 23:00
用简体呗老兄

标题:tkinter窗口没有点击关闭却触发了"WM_DELETE_WINDOW"的协议处理程序
内容:在谷歌和百度上搜索WM_DELETE_WINDOW的结果都只有"定义当用户使用窗口管理器显式关闭窗口时发生的情况"
但是我只是执行了代码就触发了处理函数

拜托了大大🙏

Twilight6 发表于 2020-7-17 23:39:28

Yuri_L 发表于 2020-7-17 23:20
标题:tkinter窗口没有点击关闭却触发了"WM_DELETE_WINDOW"的协议处理程序
内容:在谷歌和百度上搜索WM_ ...


你直接加 print 肯定会打印的,因为代码总要运行到这一行才知道你定义了关闭窗口时发生的情况,你这样试试效果即可:

import tkinter as tk

root = tk.Tk()
root.geometry('180x167')
def show():
    print('-------------------------------')
root.wm_protocol('WM_DELETE_WINDOW',show)
root.mainloop()

这样定义就是当你点 x 的时候就会调用 show 函数

Yuri_L 发表于 2020-7-17 23:44:11

Twilight6 发表于 2020-7-17 23:39
你直接加 print 肯定会打印的,因为代码总要运行到这一行才知道你定义了关闭窗口时发生的情况,你这 ...

謝謝大大!解決了我的迷惑同時也能觸類旁通了!

Twilight6 发表于 2020-7-17 23:46:29

Yuri_L 发表于 2020-7-17 23:44
謝謝大大!解決了我的迷惑同時也能觸類旁通了!



没事~客气了,不过下次建议简体发帖子、评论哈~
页: [1]
查看完整版本: tkinter窗口沒有點擊關閉卻觸發了"WM_DELETE_WINDOW"的協議處理程序