tkinter 关闭窗口怎么把整个程序都结束??

请问一下,写了一个程序,里面有def函数,其中有一个是调用tkinter窗口输入数据的,要怎么让这个窗口被点击右上角X的时候把整个程序结束呢??程序长了些,对应tkinter的部分如下:
def face():
win = tk.Tk()
win.title('名称')
center_window(win, 300, 150)#此处是单独写的另一个窗口居中的函数
win.wm_attributes('-topmost',1)#置顶
win.resizable(width=False, height=False)
tk.Label(win,text=" ").pack()
tk.Label(win,text="输入名称:").pack()
var = tk.StringVar()
tk.Entry(win,textvariable = var).pack()
tk.Label(win,text=" ").pack()
B=tk.Button(win,text='确定',width=8,command=win.destroy)
win.bind('<Return>', lambda e: win.destroy())
B.pack()
win.mainloop()
return(var.get())

这个函数写的是获得一个名称的值,但是关闭tkinter的窗口时程序就出现假死的状态,要怎么实现点击右上角的X 就结束整个程序呢?

把另一个窗口的设置为主窗口的子窗口。
代码:主窗口.Toplevel(子窗口)
把原来的 子窗口.Tk() 替换掉就好了。
还想问一下楼主,,我在tkinter打开turtle,在没画完的情况下关闭turtle,就会一直再弹出turtle窗口直到原来的指令执行完为止,关闭主窗口也没用。不知道该怎么解决。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-07
因为mainloop()没有收到消息要退出循环。
在你完成任务后调用root.destroy()即可退出循环。点右上角的x也是一样的。追问

你好,我不是要结束这个窗口,我是要结束整个程序,这个def只是程序众多中的一个

本回答被网友采纳
相似回答