Russian Qt Forum
Ноябрь 22, 2024, 23:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Python. Как организовать пул потоков?  (Прочитано 4254 раз)
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. Может сразу подскажете как это организовать?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 21.