QThread: Destruido mientras el hilo aún se está ejecutando

Estoy teniendo problemas con QThreads en python. Quiero cambiar el color de fondo de la etiqueta. Pero mi aplicación se bloquea al iniciar. “QThread: destruido mientras el hilo aún se está ejecutando”

class MainWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) statusTh = statusThread(self) self.connect(statusTh, SIGNAL('setStatus'), self.st, Qt.QueuedConnection) statusTh.start() def st(self): if self.status == 'ON': self.ui.label.setStyleSheet('background-color:green') else: self.ui.label.setStyleSheet('background-color:red') class statusThread(QThread): def __init__(self, mw): super(statusThread, self).__init__() def run(self): while True: time.sleep(1) self.emit(SIGNAL('setStatus')) if __name__ == "__main__": app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_()) 

No está almacenando una referencia al subproceso después de que se haya creado, lo que significa que será recolectado (es decir, destruido) algún tiempo después de que el progtwig salga de MainWindow s __init__ . self.statusTh almacenarlo al menos mientras el hilo se esté ejecutando, por ejemplo, use self.statusTh :

 self.statusTh = statusThread(self) self.connect(self.statusTh, SIGNAL('setStatus'), self.st, Qt.QueuedConnection) self.statusTh.start()