python gui图形界面关闭后,程序仍在运行
有些时候,我们的程序虽然关闭了,但是其实只是界面的UI关闭了,可能后台程序依然在运行。
不知道你是否有这样的情况,比如你在调试一个程序的时候,如果你不关闭它,是不能在重启一个进程调试的。但是,有时候,即使你关闭了程序,它依无法调试,提示程序正在运行。这个时候就是涉及到我们的UI渲染问题。
正常的情况下,我们的UI和获取数据时分开处理的,比如获取数据我们可以采用新起一个线程,这个时候我们要做的就是在UI线程销毁的时候,需要把后台线程也销毁掉。
在python gui中,我们可以通过两种方式来解决这个问题。
-
设置守护进程。
self.your_thread = threading.Thread(target=self.tcp_client_concurrency) # 设置线程为守护线程,防止退出主线程时,子线程仍在运行 self.your_thread.setDaemon(True) # 新线程启动 self.your_thread.start()
2.重构 def closeEvent(self, event): 函数
def closeEvent(self,event): sys.exit(app.exec_())
这样处理之后,我们的程序关闭之后,就可以正常打开调试了。