python gui图形界面关闭后,程序仍在运行

作者: dreamfly 分类: python 发布时间: 2019-12-10 16:32

有些时候,我们的程序虽然关闭了,但是其实只是界面的UI关闭了,可能后台程序依然在运行。

不知道你是否有这样的情况,比如你在调试一个程序的时候,如果你不关闭它,是不能在重启一个进程调试的。但是,有时候,即使你关闭了程序,它依无法调试,提示程序正在运行。这个时候就是涉及到我们的UI渲染问题。

正常的情况下,我们的UI和获取数据时分开处理的,比如获取数据我们可以采用新起一个线程,这个时候我们要做的就是在UI线程销毁的时候,需要把后台线程也销毁掉。

在python gui中,我们可以通过两种方式来解决这个问题。

  1. 设置守护进程。

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_())

这样处理之后,我们的程序关闭之后,就可以正常打开调试了。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!