如何在python中使MAIN WINDOW的关闭按钮无法使用

时间:2018-03-17 09:24:44

标签: python python-3.x tkinter

我希望在打开模态窗口时,X的{​​{1}}按钮(关闭按钮)无效。

我试图找到我想要的答案,但没有我想要的答案。

我真的强调我想要使MAIN WINDOW无法关闭按钮,而不是模态窗口(tkinter窗口)。

我真的在寻找答案。 感谢。

这是我的代码

MAIN WINDOW

代码多于此,但我认为我不需要在这里编写每个代码。

打开此模态窗口(tkinter窗口)时,我想制作MAIN WINDOW的关闭按钮。

2 个答案:

答案 0 :(得分:0)

通过为“WM_DELETE_WINDOW”定义wm_protocol处理程序,在Tkinter程序中处理窗口框关闭按钮。默认处理程序退出程序,但如果定义一个不退出的处理程序,则可以忽略窗口管理器退出的请求。

#!/usr/bin/env python3

import tkinter as tk

def on_exit(label):
    label.configure(text="Not exiting")

def main():
    root = tk.Tk()
    label = tk.Label(text="")
    label.place(x=0,y=0)
    button = tk.Button(root, text="Exit", command=root.destroy)
    button.place(x=120,y=80)
    root.wm_protocol("WM_DELETE_WINDOW", lambda: on_exit(label))
    root.mainloop()

if __name__ == '__main__':
    main()

答案 1 :(得分:0)

您无法删除操作系统处理的标题栏,但是无论何时调用它都应该忽略该事件

def __CancelCommand(event=None): pass    
    self.top.protocol( 'WM_DELETE_WINDOW', __CancelCommand )