Понять, когда закончить qthread - PullRequest
1 голос
/ 15 марта 2012

Я изучаю 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 не запущен?

1 Ответ

6 голосов
/ 16 марта 2012

QThread как сигнал finished(), который вы можете прослушать, если хотите получать уведомление о выходе из потока.

Также вы можете сделать что-то вроде этого:

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

, где вызов wait() будет блокироваться до тех пор, пока ваш поток не будет должным образом завершен.

...