Проблема потоковой передачи и сигналов в PyQt

У меня проблемы с обменом данными между потоками в PyQt. Я использую сигналы для связи между двумя потоками, отправителем и слушателем. Отправитель отправляет сообщения, которые, как ожидается, получит слушатель. Однако сообщения не принимаются. Может ли кто-нибудь подсказать, что может пойти не так? Я уверен, что это должно быть что-то простое, но я много часов искал и ничего не нашел. Заранее благодарим!

from PyQt4 import QtCore,QtGui
import time

class Listener(QtCore.QThread):    
    def __init__(self):
        super(Listener,self).__init__()

    def run(self):
        # just stay alive, waiting for messages
        print 'Listener started'
        while True:
            print '...'
            time.sleep(2)

    def say_hello(self):
        print ' --> Receiver: Hello World!'

class Sender(QtCore.QThread):
    # a signal with no arguments
    signal = QtCore.pyqtSignal()

    def __init__(self):
        super(Sender,self).__init__()
        # create and start a listener
        self.listener = Listener()
        self.listener.start()
        # connect up the signal
        self.signal.connect(self.listener.say_hello)
        # start this thread
        self.start()

    def run(self):
        print 'Sender starting'
        # send five signals
        for i in range(5):
            print 'Sender -->'
            self.signal.emit()
            time.sleep(2)
        # the sender's work is done
        print 'Sender finished'
6
задан flying sheep 5 July 2011 в 00:16
поделиться