I'm having some problems with communicating between Threads in PyQt. I'm using signals to communicate between two threads, a Sender and a Listener. The sender sends messages, which are expected to be received by the listener. However, no messages are receieved. Can anyone suggest what might be going wrong? I'm sure it must be something simple, but I've been looking around for hours and not found anything. Thanks in advance!
from PyQt4 import QtCore,QtGui
import timeclass Listener(QtCore.QThread): def __init__(self):super(Listener,self).__init__()def run(self):# just stay alive, waiting for messagesprint 'Listener started'while True:print '...'time.sleep(2)def say_hello(self):print ' --> Receiver: Hello World!'class Sender(QtCore.QThread):# a signal with no argumentssignal = QtCore.pyqtSignal()def __init__(self):super(Sender,self).__init__()# create and start a listenerself.listener = Listener()self.listener.start()# connect up the signalself.signal.connect(self.listener.say_hello)# start this threadself.start()def run(self):print 'Sender starting'# send five signalsfor i in range(5):print 'Sender -->'self.signal.emit()time.sleep(2)# the sender's work is doneprint 'Sender finished'