TkInter callback - how to ?

Timothy R Evans tre17 at cosc.canterbury.ac.nz
Thu Jun 24 01:39:05 CEST 1999


bernard <bh at cellware.de> writes:

> I have an array of buttons (a keypad) all using the same callback
> function - is there any way of finding out which button invoked
> the callback ? I suppose I am looking for a tcl/tk solution
> something like
>   -command "myCallback $thisButton"
> but tkInter only seems to provide
>   -command myCallback
> 
> Any help welcome
> 
> bernard

I posted a `Command' class that solves this a while ago, here it is
again:

class Command:
    def __init__(self, func, *args, **kw):
        self.func = func
        self.args = args
        self.kw = kw

    def __call__(self, *args, **kw):
        args = self.args + args
        kw.update(self.kw)
        apply(self.func, args, kw)

then do this:

command=Command(myCallback, thisbutton)

The class given is rather general, and I'm not quite sure if my
precedence for the keyword arguments makes sense.  As you won't use
the keyword arguments this won't matter.

--
Tim Evans





More information about the Python-list mailing list