passing tuple with pyqt4 signal/slot mechanism
Phil Thompson
phil at riverbankcomputing.co.uk
Thu Apr 26 11:05:33 EDT 2007
On Thursday 26 April 2007 3:41 pm, Diez B. Roggisch wrote:
> Pradnyesh Sawant schrieb:
> > Hello,
> > I have a pyqt4 code in which i'm trying the signal/slot mechanism. The
> > (stripped) code is as follows:
> >
> > class D(QtCore.QThread):
> > def __init__(self):
> > QtCore.QThread.__init__(self)
> > tpl = ("Primary", "priSec")
> > print "tpl:", tpl
> > self.emit(QtCore.SIGNAL("setLabel"), tpl)
> > class Gui(QtGui.QDialog):
> > def __init__(self, parent = None):
> > QtGui.QDialog.__init__(self, parent)
> > def setLabel(self, tpl):
> > print "####tpl:", tpl
> > print "**********tpl:", str(tpl)
> > return
> > if __name__ == "__main__":
> > app = QtGui.QApplication(sys.argv)
> > dialog = Gui()
> > d = D()
> > QtCore.QObject.connect(d, QtCore.SIGNAL("setLabel"),
> > dialog.setLabel, QtCore.Qt.QueuedConnection)
> > sys.exit(dialog.exec_())
> >
> > The output i'm getting is as follows:
> >
> > tpl: ('Primary', 'priSec')
> > ####tpl: (<refcnt 0 at 0xb7caac8c>,)
> > **********tpl: ((((((((<NULL>,),),),),),),),)
> >
> > Can anyone kindly tell me what's happening here? Why is the tuple
> > ("Primary", "priSec") getting converted to this <NULL> thingy? And
> > what is this thingy anyways (It looks to be a deeply nested tuple, but
> > am not sure).
>
> It's just wild guessing back from my Qt3-days - but isn't PYSIGNAL
> instead of SIGNAL necessary here?
No, PyQt4 used SIGNAL for both Qt and Python signals.
Phil
More information about the Python-list
mailing list