[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