In this example I can show you how you can implement a custom signal (MySignal) together with the usage of threads with QThread.
ObjType QObject def printObject(obj qDebug X '.format(type(obj id(obj obj) class SomeThread(QObject signal pyqtSignal(objType) def _init self QObject._init self) read QThread self.
QThread._init self, parentapp) def run(self eep(5) print "in thread" gnal signal hi from thread def main w widget ow ngleShot(0,.appinit) sys.Also, with queued connections, a signal may be sitting in an unprocessed event queue for an indeterminate amount of time.To test this, I modified Ilya's code to casino 2000 mondorf purple lounge make it easier to test the signal/slot mechanism on different types.Longoperation) arted) nished) nnect(self.6:14b-15 (The Message) next part An html attachment was scrubbed.The following code creates a window with two buttons: the first starts and stop a thread (MyThread) that runs a batch that prints a point in the stdout every seconds continuously.Longbutton) bel1) bel2) tLayout(self.Edu wrote: I'd like to thank Ilya for bringing this to light.If a Python type cannot be converted to a pass-by-value C type (string, big int, dict, object, etc.) then a pointer to it will be passed through the signal/slot mechanism, meaning I must retain a Python reference until the signal has been delivered to all.As you say, in the direct or blocking case, there's no concern with object lifetime.ExitingTrue tEnabled(False) while Running eep(0.01) continue tText Start batch tEnabled(True) else: read.Centralwidget QWidget(self) tchbutton QPushButton Start batch self) self.If a Python type can converted to a pass-by-value C type (int, long, etc.) then it will be passed as the C value through the signal/slot mechanism, meaning I don't need to retain a Python reference to it to keep it valid.Wait if _name_ main main On Fri, Feb 12, 2016 at 1:57 PM, Jones, Bryan bjones at state.Wait read) gnalHandler, type.Qt maintains lots of internal data structures about connections, but these aren't exposed.Longthread.exitingFalse art tText Long operation started tEnabled(False) def tText Long operation completed with: 'data) tEnabled(True) if _name main app QApplication(gv) window MainWindow ow sys.Based on this, I conclude that Qt allows the emission of signals with any type registered with the Qt meta-type system by copying the type, delivering it to all slots, then destroying the copy.
2apiPyQt4.5 #!/usr/bin/env python2 import sys, time from PySide.