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
runnable2.py
Description: application/python
runnable2-old.py
Description: application/python
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt