[PySide] Signal emitted on a worker thread not being received by main thread
Tibold Kandrai
kandraitibold at gmail.com
Mon Apr 8 23:19:42 CEST 2013
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: pyside-bounces+kandraitibold=gmail.com at qt-project.org [mailto:pyside-bounces+kandraitibold=gmail.com at qt-project.org] On Behalf Of William Dias
Sent: 2013 April 08, Monday 17:01
To: pyside at qt-project.org
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!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20130408/fe77fca6/attachment.html>
More information about the PySide
mailing list