PyQt içinde Konular arasında iletişim kurma konusunda bazı sorunlar yaşıyorum. İki iş parçacığı, Gönderen ve Dinleyici arasında iletişim kurmak için sinyaller kullanıyorum. Gönderen, dinleyici tarafından alınması beklenen mesajları gönderir. Ancak, hiçbir mesaj alınmaz. Neyin yanlış gidebileceğini öneren var mı? Eminim basit bir şey olmalı, ama saatlerce etrafa baktım ve bir şey bulamadım. Şimdiden teşekkürler!Threading ve Signals sorunu
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'
Qt sinyal olduğunu nesne örneğini oluşturdu hangi iplik bağlı bir sinyal göndermek için hangi diş karar verir. Eğer ana iş parçacığı bir Dinleyici nesnesi oluşturmak ve buna sinyaller gönderir eğer Anlamı, bunları çağırmak edeceğiz ana iş parçacığında. Unutmayın, nesne iplik değildir. Bakınız örn. Qt. "iş parçacığı afinitesi" ile ilgili ayrıntılar için ftp://ftp.qt.nokia.com/videos/DevDays2007/DevDays2007%20-%20Multi-threading_in_Qt.pdf. –