PyQt: Is signal / slot really working across threads?
Alexander Eisenhuth
newsuser at stacom-software.de
Tue May 29 06:58:30 EDT 2007
Hello pyqt users,
i tried to use signal / slot across threads. With the following example I want
to emit a signal when the thread loop is entered. The connected slot is never
called. Why?
Any help is very welcome ...
Alexander
import time
import sys
import PyQt4
from PyQt4.QtCore import (QObject, QThread)
SIGNAL = PyQt4.QtCore.SIGNAL
class CancelableQtThread_(QThread):
def __init__(self):
QThread.__init__(self)
self.sigStarted = SIGNAL("sigStarted()")
def run(self):
print "Enter thread"
self.emit(self.sigStarted)
time.sleep(0.1)
print "Leave thread"
class TestSigSlot(QObject):
def __init__(self):
QObject.__init__(self)
self._thread = CancelableQtThread_()
self.connect(self._thread, self._thread.sigStarted, self.Called)
self._thread.start()
time.sleep(1.0)
def Called(self):
print "Called !"
if __name__ == "__main__":
obj = TestSigSlot()
More information about the Python-list
mailing list