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

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

采用的是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之外的其他函数,迎合思考方式而生成的而非必定的模式。有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。

模块化程序设计方法是把整个程序划分为若干功能较为单一的程序源卜模块,然后分别予以实现,最后再把所有的程序模块像搭积木一样装配起来。

利用函数可以实现程序的模块化,可以大大地减轻编码工作量。在函数内部或复合语句块内部定义的 auto 类型变雹答穗量称为局部变量。

局部变量的作用域从该局部变量定义的位置开始到本函数或复合语句结束处。局部变量的生存期较短暂。当局部变量所在的函数被调用时,局部变量内存空间被分配,函数调用结束后,局部变量内存空间被释放。

函数的形参和实参均属于局部变量,调用函数时,形参举败内存空间被分配。函数调用结束后,形参内存空间被释放。C语言函数参数传递可分为三种情况:简单变量作为函数参数、数组名作为函数参数以及指针作为函数参数。

参考资料来源:百度百科-main函数

线程只执行一次……让我来猜一猜。

你可能会认为创建一个线程去执行某个动作就完事了?

一段代码不管是在主线程里还是在新建的线程里,它都是按代码本身的规则那么执行的,该循环就循环,该结束就结束。

所以,我们建立一个线程去执行某个动作,主要就是让这个动作的执行不影响主程的执行,不要因为它导致主程序的某环清芹节等待这个动作的结果。

举例来说,一个定时3秒去读一下某个文件,总不能做个循环,读一下文件,然后sleep3秒吧,那除了这个,什么也干不了,基本都是在【等待3秒】这里耗着了。解决办法就是做个线程去完成【读某个文件】,然后这个事完了之后、前再建一个同样的线程让它三秒后执行。

看下图:

这个sort_loop就是这样干的:

【红框2】就是答则毕主要的工作内容(对self.data进行收缩)

如果简简单单的就这,那它就执行一次就完事了,哪怕你把sort_loop放到新线程里,也是一样。

要在sort_loop里再新建一个线程,新线程还是执行sort_loop,于是就是这样的:

A把桌子擦了擦,把抹布塞给了B;

B把桌子擦了擦,把抹布塞给了C

C把盯唯桌子擦了擦,把抹布塞给了D...

这才构成一个线程循环。

sys.exit()

Python中,当有时当一个条件成立困改的情况下,需要终止程序,可以使用sys.exit()退出程序。sys.exit()会引发一个异常。

1.如果这个异常没有被捕获,那么python编译器将会退出,后面的程序将不会执行。

2.如果这个异常被捕获(try...except...finally),捕获这个异常可以做一些额外的清理工作,后面的程序还会继续执行。

注:0为正常退出,其他数值仿纤(备尺仿1-127)为不正常,可抛异常事件供捕获。

另一种终止程序的方法os._exit(),一般情况下使用sys.exit()即可,一般在fork出来的子进程中使用os._exit()。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12364213.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存