pyqt & pyside 多线程全部停止

pyqt & pyside multithreading all stop

当我刚开始使用 QThread 时,它让我抓狂。 这是一个使用 QThread 进行测试的简短程序。

我想在按下停止按钮时停止所有线程。但是只有一个线程停止。为什么会出现这个问题?

当您点击停止按钮时,您只需调用self.downloader.stop()。此时,self.downloader就是你创建的最后一个线程,即Thread-5。所以只有 Thread-5 停止是有道理的。您必须修改 stop 插槽。这样的事情可能会奏效:

def stop(self):
    for thread in self.threads:
        thread.stop()