Hi,
I think you’ll have to use queued connection when you connect the photoStatus signal to the photoStatus slot. See: http://qt-project.org/doc/qt-4.8/threads-qobject.html#signals-and-slots-across-threads Cheers, Tibold From: [email protected] [mailto:[email protected]] On Behalf Of William Dias Sent: 2013 April 08, Monday 17:01 To: [email protected] Subject: [PySide] Signal emitted on a worker thread not being received by main thread Hi, I am facing an intermittent problem with my PySide application. I have a GUI that spawns several threads that are responsible for sending photos to a web server. The threads are created as shown bellow: photoConnectionThread = QThread() photoConnectionObject = http_connection.PhotoConnection(self.filename) photoConnectionObject.photoStatus.connect(self.photoStatus) photoConnectionObject.moveToThread(photoConnectionThread) photoConnectionThread.started.connect(photoConnectionObject.work) photoConnectionThread.finished.connect(self.threadFinished) photoConnectionThread.start() My worker thread tries to upload a photo only once and then emits a signal to the main thread so that the status can be updated in a database. def work(self): logger.info <http://logger.info> ("photo object created on thread " + str(self.thread())) status = sendPhoto(self.filename) self.photoStatus.emit(self.filename, status) QThread.sleep(5) logger.info <http://logger.info> ("exiting thread " + str(self.thread())) self.thread().exit(0) The problem is that, sporadically, the main thread does not receive the signal and consequently doesn't get the status updated. Does anybody have any idea why this is happening? I am using: Python 2.7 PySide 1.1.1 Windows 7 Thank you!
_______________________________________________ PySide mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/pyside
