【问题标题】:Understand when qthread finish了解 qthread 何时完成
【发布时间】:2012-04-01 09:31:24
【问题描述】:

我学习 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?'

在运行函数中,我发出被其他类拦截的自定义信号。在其他类中,我收到一个信号,我还检查 Qthread 是否正在运行:

     print 'TestThread is running? - ', self.myTestTh.isRunning()

有时它会打印 True!!! 因此,似乎 Qthread 在运行功能退出时不会立即完成 那么,我可以截取一个完成的信号以确保 Qthread 没有运行吗?

【问题讨论】:

    标签: qt pyqt qthread


    【解决方案1】:

    QThread 作为finished() 信号,如果您想在线程实际退出时收到通知,您可以收听该信号。

    你也可以这样做:

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

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

    【讨论】:

    • 我可以使用myThread.finished.connect(self.method) 来执行一个事件,以便在线程完成后更新 Ui。
    猜你喜欢
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2012-10-17
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多