问题描述:
使用pyqt5写了个窗口,执行了一个循环功能,然后发现一个问题,关闭窗口后程序还在后台运行
问题原因:
执行循环功能时开了一个子线程,关闭窗口只是把主线程关掉了,子线程还在继续
解决方案:
搜了一下网上的,主要是设置守护进程、重写关闭函数等:
设置守护进程:setDaemon(True),这个方法有效果,语句要写在线程start之前:
self.your_thread = threading.Thread(target=self.fun, args=(arg1, arg2))
设置线程为守护线程,防止退出主线程时,子线程仍在运行
self.your_thread.setDaemon(True)
新线程启动,注意要先设置守护线程再启动
self.your_thread.start()