了解qthread何时完成

了解qthread何时完成,qt,pyqt,qthread,Qt,Pyqt,Qthread,我研究Qthread。当qthread发出信号完成时,我感到困惑。退出运行功能时是否发出结束信号 class TestThread(QtCore.QThread): customSignal = QtCore.pyqtSignal(['QString']) def __init__(self): QtCore.QThread.__init__(self) def run(self): pri

我研究Qthread。当qthread发出信号完成时,我感到困惑。退出运行功能时是否发出结束信号

class TestThread(QtCore.QThread):
         customSignal = QtCore.pyqtSignal(['QString'])

         def __init__(self):
            QtCore.QThread.__init__(self)

         def run(self):
            print 'some code in run functions... '
            self.customSignal.emit('OK')
            print 'after this istruction qthread emit instantly finished signal?'
在run函数中,我发出了被其他类截获的自定义信号。在其他类中,我接收到一个信号,并检查Qthread是否正在运行:

     print 'TestThread is running? - ', self.myTestTh.isRunning()
有时候它是真的!!! 所以,当运行函数退出时,Qthread似乎不会立即完成
因此,我是否也可以截取一个已完成的信号,以确保Qthread没有运行?

Qthread作为一个
finished()
信号,如果希望在线程实际退出时收到通知,您可以侦听该信号

您还可以执行以下操作:

myThread.quit();
myThread.wait();

其中对
wait()
的调用将阻塞,直到线程正确完成。

QThread作为
finished()
信号,如果希望在线程实际退出时收到通知,则可以侦听该信号

您还可以执行以下操作:

myThread.quit();
myThread.wait();

其中对
wait()
的调用将被阻止,直到线程正确完成。

我可以使用
myThread.finished.connect(self.method)
在线程完成后执行更新Ui的事件。我可以使用
myThread.finished.connect(self.method)
在线程完成后执行更新Ui的事件。