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

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

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

from tkinter import def main():

root = Tk()

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

bpack()

mainloop()if __name__ == '__main__':

main()

扩展资料:

main函数的应用:

程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合思考方式而生成的而非必定的模式。有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。

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

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

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

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

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

程序一定会运行到clean()函数,但是,如果你代码写的多,你就应该知道,滥用tryexcept会让你非常痛苦。例如它突然给你打印一个运行异常: 1。你根本不知道是哪里出了问题,也不知道具体出了什么问题。为了找到问题,你必须让程序把错误爆出来。但这样一来,clean()又不能正常运行了。Python退出时强制运行一段代码

有什么办法,既能让程序报错,又能在报错已经还能运行clean()呢

这个时候,我们就可以使用Python自带的atexit这个模块了。它的使用方法非常简单:

import atexit

@atexitregister

def clean():

 print('清理环境相关的代码')

setup()

test()

这样一来,我们不需要显式调用clean函数了。无论程序正常结束,还是程序异常报错,clean函数里面的内容总会执行。

5000pythonexe进程意外退出的原因是系统或硬件问题、程序本身出现错误、与其他程序冲突。

1、系统或硬件问题:例如 *** 作系统崩溃、硬件故障、电脑过热等。

2、程序本身出现错误:是代码逻辑问题、内存泄露、资源耗尽、依赖库缺失等。

3、与其他程序冲突:如果同时运行了多个程序,会因为资源争用、进程冲突等原因导致其中一个程序崩溃。

要看你在什么平台上运行Python的程序了 我知道的有如下:

如果在puttyexe上 就是Ctrl + D;

如果在IDLE上 就是Ctrl + C, 可能ESC也会有用;

如果在pyscripter上 如果无限循环的东西基本在XP上就不能暂停了 只能强行把pyscripter用任务管理器关了 别的平台我没试过;

如何使用Python,在Windows下保证父进程退出时,子进程同样退出:

有两种办法:

1一种办法是在父进程fork出子进程的时候把子进程pid写入一个文件中,这种父进程捕捉到sigkill或者sighup信号的时候读取文件kill 子进程们的pid。

2还有一种方法就是子进程定时调用osgetppid()来判断是否自己已经成为了僵尸进程,如果是赶紧把事情做完正常结束掉。

第一种方法暴力有效,第二种方法更加安全。

按照unix设计哲学,进程是程序执行的最小单元,而他们是天生平等的,没有父进程权利就大一些就能剥夺子进程的生命周期,父进程没了,init进程就要喜当爹。所以你的问题的重点不在于父进程结束子进程,再于一个进程如何结束另一个进程,从这个角度(ipc)上去探索,方法还是很多的,发挥想象力吧。

用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:

import threading

import time

def change_user():

  print('这是中断,切换账号')

  t = threadingTimer(3, change_user)

  tstart()

#每过3秒切换一次账号

t = threadingTimer(3, change_user)

tstart()

while True:

  print('我在爬数据')

  timesleep(1)

扩展资料

有时当一个条件成立的情况下,需要终止程序,可以使用sysexit()退出程序。sysexit()会引发一个异常:

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

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

注:0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。另一种终止程序的方法os_exit()

一般情况下使用sysexit()即可,一般在fork出来的子进程中使用os_exit()

采用sysexit(0)正常终止程序,程序终止后shell运行不受影响。

采用os_exit(0)关闭整个shell,调用sys_exit(0)后整个shell都重启了(RESTART Shell)。

根据我处理这个问题的教训,python的多线程面对这个情况是非常郁闷的,所以我最后选择了用multiprocessing模块(多进程)替换了多线程。如果可以的话,我强烈建议你改用multiprocessing。

以上就是关于python TKinter的主窗口运行程序完毕后,怎么让其自动关闭全部的内容,包括:python TKinter的主窗口运行程序完毕后,怎么让其自动关闭、如何在Python程序退出的时候,强制运行一些命令呢、500.0python.exe进程意外退出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9802438.html

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

发表评论

登录后才能评论

评论列表(0条)

保存