PyQt5关闭窗口多线程的退出

893 阅读1分钟
问题描述:

使用pyqt5写了个窗口,执行了一个循环功能,然后发现一个问题,关闭窗口后程序还在后台运行

问题原因:

执行循环功能时开了一个子线程,关闭窗口只是把主线程关掉了,子线程还在继续

解决方案:

搜了一下网上的,主要是设置守护进程、重写关闭函数等:

设置守护进程:setDaemon(True),这个方法有效果,语句要写在线程start之前:

self.your_thread = threading.Thread(target=self.fun, args=(arg1, arg2))

设置线程为守护线程,防止退出主线程时,子线程仍在运行

self.your_thread.setDaemon(True)

新线程启动,注意要先设置守护线程再启动

self.your_thread.start()