On Monday 18 July 2011, 20:36:53 Jeremy Sanders wrote:
> Hi - I'm having problems with the following code where a QRunnable
> emits a signal then ends. If you click the button it should print
> 1,2,3. It sometimes works for the first few times but the wrong
> number of arguments is given to the slot after that.
>
> Is this a PyQt bug? 

I can confirm, that there are issues with your code. At least as long as 
you use old style signals and slots.

If you're interested in how this _could_ look nowadays, see attached 
script runnable2.py. While at it, I pimped up the code a bit in order 
to exercise the signal and slot mechanics a bit harder. It not only 
looks smarter, it delivers a million signals per push without a hitch, 
if you call it like this: python runnable2.py 1000

Compare this with running: python runnable2-old.py 
This should deliver 100 signals, but most of the time, PyQt misses to 
deliver the arguments for the signals at all. It might take a few 
pushes and some scrolling back to see some of them.

> I'm using 4.8.3 on Ubuntu (x86). I've tried 
> setting autodelete on the runnable to be false but that causes a
> crash.

Well, you missed to tell us about the versions you use, and I'm too lazy 
to look them up now.. Anyway, I think, that there are some races in the 
old style signal and slot argument handling code. 

Looks like Phils call..

Cheers,
Pete

python: 2.6.2
sip: 4.12.3
qt4: 4.7.1
pyqt4: 4.8.4

Attachment: runnable2.py
Description: application/python

Attachment: runnable2-old.py
Description: application/python

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to