on November 30, 2010. in Programming. A 1 minute read.
While hacking on ape, I came to a situation where I need to pass some arguments to a custom defined slot. The slot is being called from different signals, one where the argument is passed by PyQt itself and a second one where I need to programmatically pass the argument to the slot.
First I tried with something like:
action = QAction("My action", parent)
action.triggered.connect(my_slot(my_argument))
which ended in an error: TypeError: connect() slot argument should be a callable or a signal, not ‘NoneType'
After a bit of poking around I passed a lambda function to the connect() method:
action = QAction("My action", parent)
action.triggered.connect(lambda arg=my_argument: my_slot(arg))
Works like a charm.
Also this is my first try to use github gists as a way to embed/highlight code. Hope it’ll work out.
Happy hackin’!