A
Alexander Eisenhuth
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()
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()