Although it is in the documentation, QThread is not meant to be used
this way (subclassing). Have a look at this:
http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/ It helped me a
lot. Also a complete stripped down example would greatly help in a case
of a segfault.
On 06/07/2012 09:59 AM, William Dias wrote:
Hi,
I have a subclass of QThread which uploads pictures to a webserver.
For each new picture created in the main thread, the program spawns a
new thread to handle the job. I've override the __init__ method to be
able to pass some parameters to the thread object, as you can see bellow.
class PhotoConnection(QThread):
photoStatus = Signal(str, str)
def __init__(self, tags, filename, parent=None):
QThread.__init__(self, parent)
self.tags = tags
self.filename = filename
def run(self):
status = sendPhoto(self.tags, self.filename)
self.photoStatus.emit(self.filename, status)
In the GUI thread, the method responsible dor creating the threads is
the following:
def sendPhoto(self):
photoConnection = PhotoConnection(self.tags_to_string,
self.filename, self)
photoConnection.photoStatus.connect(self.photoStatus)
photoConnection.finished.connect(self.threadFinished)
photoConnection.start()
In the PhotoConnection, if I don't set the parent of my Qthread object
to self (for example, if I set to None) or if I don't override the
__init__ method and create another method to pass the arguments, when
the thread finishes the execution I got a segfault.
Why is this happening? Can you help me?
Thanks,
_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside
--
Sebastian Elsner - pipeline td - r i s e | fx
t: +49 30 20180300 [email protected]
www.risefx.com
r i s e | fx GmbH
Schlesische Strasse 28 Aufgang B, 10997 Berlin
Geschäftsführer: Sven Pannicke, Robert Pinnow
Handelsregister Berlin HRB 106667 B
_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside