Выгуглил таки пример, пока вопросы пропали, вот он(тут немного он изменен мной, закомментирован сигнал):
import sys, time
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class WorkerObject(QObject):
testsignal = pyqtSignal(int, int, int)
class Runnable(QRunnable):
def __init__(self):
QRunnable.__init__(self)
self.obj = WorkerObject()
def run(self):
print "Hello"
time.sleep(10)
print "Over"
#self.obj.testsignal.emit(1, 2, 3)
class Win(QPushButton):
def __init__(self):
QPushButton.__init__(self, "Push me")
self.tp = QThreadPool()
self.tp.setMaxThreadCount(5)
self.clicked.connect(self.slotClicked)
def slotClicked(self):
runnable = Runnable()
runnable.obj.testsignal.connect(self.slotTestSignal)
self.tp.start(runnable)
def slotTestSignal(self, a, b, c):
print "Returning from runnable", a, b, c
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Win()
w.show()
app.exec_()