Try this:
for button in [...]:
def slot():
self.button_clicked(button)
button.__slot = slot # keep a reference so it doesn't get GC'd
QtCore.QObject.connect(..., slot)
~ Daniel
On Aug 20, 2008, at 11:17 AM, Ruben Fonseca wrote:
Hi,
I'm having a problem developing my first Python Qt4 app and I thought
you could help me.
I have a bunch of buttons that I want to watch for the "clicked()"
signal.
Since the handling is the same for all buttons I decided to write
something like this
----------
for button in [self.button_1, self.button_2, ..., self.button_0]:
QtCore.QObject.connect(button, QtCore.SIGNAL('clicked()'), lambda:
self.button_clicked(button))
def button_clicked(self, number):
print "Received a signal from %s" % number.objectName()
----------
However, every time I click on a button I got on the console
"Received a signal from button_0"
regardless the button I click... So I'm guessing something's wrong
with
my lambda function.
What's the best way of solving this particular problem in Python?
Thank you for you support
Ruben Fonseca
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt