Francesco Bochicchio wrote: > Il Mon, 31 Oct 2005 06:23:12 -0800, [EMAIL PROTECTED] 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. > I don't see why this is preferable to having the callback as a bound method of the button instances. What's the advantage here? It looks opaque and clunky to me ...
regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC www.holdenweb.com PyCon TX 2006 www.python.org/pycon/ -- http://mail.python.org/mailman/listinfo/python-list