Создал свой класс от QRunnable:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Mediator(QObject):
finishSignal = pyqtSignal(str)
def __init__(self):
super(Mediator, self).__init__()
class Twitter(QRunnable):
def __init__(self, account):
QRunnable.__init__(self)
self.account = account
self.mediator = Mediator()
def run(self):
time.sleep(1)
print self.account
self.mediator.finishSignal.emit(self.account)
Далее в классе главного виджета пытаюсь поймать этот сигнал:
def runTwitter(self, config):
for account in self.accounts:
thread = Twitter(account)
self.pool.start(thread) # self.pool - QThreadPool
thread.mediator.finishSignal.connect(self.appendToLog)
И вот, не зависимо от того, что находится в слоте appendToLog приложение крашится и предлагает отправить отчет об ошибке. Если же убрать последнюю строчку thread.mediator.finishSignal.connect(self.appendToLog), то всё работает нормально. В чем здесь ошибка?
А вообще задача проста, я хочу запустить пул потоков и выводить результаты какждого потоко в QtextEdit. Может сразу подскажете как это организовать?