Russian Qt Forum

Программирование => Python => Тема начата: Kalombo от Август 30, 2011, 14:09



Название: Python. Как организовать пул потоков?
Отправлено: Kalombo от Август 30, 2011, 14:09
Создал свой класс от 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. Может сразу подскажете как это организовать?