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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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窗口直到原来的指令执行完为止,关闭主窗口也没用。不知道该怎么解决。
参考技术A 因为mainloop()没有收到消息要退出循环。
在你完成任务后调用root.destroy()即可退出循环。点右上角的x也是一样的。追问

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

python TKinter的主窗口运行程序完毕后,怎么让其自动关闭

参考技术A

采用的是main函数对主窗口运行程序完毕自动关闭的命令:

from tkinter import *def main():

root = Tk()

b = Button(root, text='退出', command=root.quit)

b.pack()

mainloop()if __name__ == '__main__':

main()

扩展资料:

main函数的应用:

程序执行的出发点,main,是相对而言的,正如语音学理论关注的是泛音,泛音是程序中main以外的功能,产生泛音是为了迎合思维方式而不是某种模式。有主次之分,对其实现进行了详细的分析,既可以模块化程序,又可以实现一个封闭的整体。

模块化编程方法是将整个程序划分成几个功能单一的程序模块,然后分别实现,最后,所有程序模块都像积木一样组装起来。

利用函数实现程序的模块化,大大减少了编码工作量,在函数或复合语句块中定义的自动类型变量称为局部变量。

局部变量的作用域从局部变量定义的位置开始,一直到该函数或复合语句的结尾,局部变量存活时间短。调用局部变量的函数时,将分配局部变量的内存空间,函数调用后,释放局部变量的内存空间。

函数参数和参数属于局部变量,调用函数时,将分配参数内存空间,函数调用后,参数内存空间被释放,C语言函数参数传递可分为三种情况:简单变量作为函数参数,数组名作为函数参数,指针作为函数参数。

参考资料来源:

百度百科-main函数

以上是关于tkinter 关闭窗口怎么把整个程序都结束??的主要内容,如果未能解决你的问题,请参考以下文章

Excel按alt+tab就有这个窗口,求问怎么关?

python TKinter的主窗口运行程序完毕后,怎么让其自动关闭

c#里面如何显示下一个窗体而关闭当前窗体?

不小心把资源管理关了怎么办?

Java登录窗口关闭 打开新窗口

怎么关闭广告拦截插件?