QThread: Détruit tandis que le thread est toujours en cours d'exécution

Je vais avoir des problèmes avec QThreads en python. Je veux changer la couleur d'arrière-plan de l'étiquette.
Mais Mon plantage de l'application lors du démarrage.
"QThread: Détruit tandis que le thread est toujours en cours d'exécution"

   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_())
Un Qt-style de solution, attribuer la fenêtre principale, comme le statusThparent, à savoir, super(statusThread, self).__init__(mw).
Merci beaucoup. Ça fonctionne maintenant
Juste pour information, c'est fondamentalement la même chose: dans ce cas, le parent de conserver la référence au fil de l'instance et, par conséquent, il ne sera pas nettoyée.
Quelqu'un peut-il expliquer , ce n'est que Qt.QueuedConnection signifie dans la question ci-dessus ?

OriginalL'auteur Sergey Kostin | 2013-03-29