[PyQt] problem with passing tuple with pyqt4 signal/slot mechanism

Pradnyesh Sawant spradml at gmail.com
Thu Apr 26 15:09:30 BST 2007


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).
-- 
warm regards,
Pradnyesh Sawant
--
Be yourself, everyone else is taken. --Anon


More information about the PyQt mailing list