[PyKDE] PyQt4 signals and closures
    Carlos Scheidegger 
    cscheid at sci.utah.edu
       
    Sun Jun 25 18:49:13 BST 2006
    
    
  
Hi everyone,
I'm experimenting with PyQt4 signals. According to the documentation,  
any Python callable can be used as a slot. However, I can't get  
closures to work as I would expect them to. Here's some sample code  
that exercises the situation:
from PyQt4 import QtCore
#!/usr/bin/env python
class A(QtCore.QObject):
     def __init__(self):
         QtCore.QObject.__init__(self)
     def makeClosure(self, x):
         def f():
             print x
         return f
a = A()
a.connect(a, QtCore.SIGNAL("testClosure"), a.makeClosure(5))
a.makeClosure(6)()
a.emit(QtCore.SIGNAL("testClosure"))
Executing this only prints "6" to stdout on my Intel MacBook running  
PyQt4.
PyQt4 version: mac-gpl-snapshot-20060604
sip version: sip-snapshot-20060525
Qt version: 4.1.3
Is this a known issue? If any more info is needed to reproduce this,  
let me know.
Thank you very much in advance,
-carlos
    
    
More information about the PyQt
mailing list