Arguments for button command via Tkinter?

Francesco Bochicchio bockman at virgilio.it
Mon Oct 31 10:58:48 EST 2005


Il Mon, 31 Oct 2005 06:23:12 -0800, dakman at gmail.com ha scritto:

> And yet the stupidity continues, right after I post this I finnally
> find an answer in a google search, It appears the way I seen it is to
> create a class for each button and have it call the method within that.
> If anyone else has any other ideas please tell.

This is  how I do it: Supposing I have three buttons b1, b2 and b3, and I
want for each button to call the same callback with, as argument, the
button itself:


def common_callback(button):
	# callback code here


class CallIt(objetc):
	def __init__(function, *args ):
		self.function, self.args = function, args
	def __call__(self, *ignore):
		self.function(button, *self.args)

b1['command']= CallIt(common_callback, b1)
b2['command']= CallIt(common_callback, b2)
b3['command']= CallIt(common_callback, b3)

This way you need only one class (a sort of custom callable) and
its instances gets called by Tkinter and in turn calls your
callback with the proper arguments.

Ciao
-----
FB








More information about the Python-list mailing list