Я пытаюсь запустить многолетний набор тестов в качестве фонового потока с PyQt. В osx поток никогда не запускается, но в окнах поток запускается, если я включаю инструкцию печати после запуска потока. Код выглядит следующим образом:PyQt Thread не работает
def runModuleTests(self):
self.stackedWidget.setCurrentIndex(2)
self.testThread = QtCore.QThread()
tr = TestRunner(self.on_testResult, self.moduleArticleNumber, self.moduleSerialNumber, self.testBedArticleNumber)
tr.moveToThread(self.testThread)
tr.testFinished.connect(self.testThread.quit)
self.testThread.started.connect(tr.runModuleTests)
self.testThread.start()
print "This print out is here to make threads work. UGLY HACK!"
У меня есть следующие вопросы:
- Это оператор печати вызывает мой графический интерфейс с получением на окнах, так что другие начинается нить?
- Как я могу заставить поток запускать как Mac OSX, так и окна?
- Имеет ли смысл GIL, я не могу получить отзывчивый интерфейс с помощью PyQt?
- Я делаю что-то не так?
Я взял вдохновение от ответа на этот вопрос: Background thread with QThread in PyQt
Возможно, что «TestRunner» исчерпаны? (так что 'tr = ...' должно быть 'self.tr = ...') – Zaiborg
Молодцы @ Зайборг - вы его получили. Я предположил, что добавление объекта в поток будет держать его в области ... Спасибо! – mikelong
Вы очень приветствуетесь – Zaiborg