[PyKDE] Re: really wierd qthread + emit issue
Matt Chambers
chambers at imageworks.com
Wed Nov 22 18:45:38 GMT 2006
Lukáš Lalinský wrote:
> Matt Chambers wrote / napísal(a):
>
>> Using PyQt 4.0 and Qt 4.1. I'm emitting a single from a QThread with a
>> single argument. About 50% of the time when I catch
>> the signal and execute the slot function, the argument is a QMutex
>> object, not the argument I emitted with the signal.
>>
>> Here is my threads run() function.
>>
>>
> [...]
>
>> Notice I'm emitting the signal with a cuejob.CueJob object, but from the
>> slot, when I print the first argument, I get:
>> <PyQt4.QtCore.QMutex object at 0xf6b0b22c>
>>
>
> There are two problems with the code:
>
> 1. Don't use "short-circuit" signals for communication between threads. The slot
> will be called from the same thread, not via the queued connection from the main
> thread, which is probably what you want. Use
> QtCore.SIGNAL("parsingComplete(PyObject*)") instead.
>
> 2. Keep references to the emit arguments, otherwise they will get deleted and
> replaced with a different objects that reuse the same memory block.
>
>
Fixing those two things worked thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20061122/0a5bb28d/attachment.html
More information about the PyQt
mailing list