Using bound variables in Tkinter events
Peter Otten
__peter__ at web.de
Wed Mar 31 10:09:39 EST 2004
Derek Fountain wrote:
> I'm coming to Tkinter from Tcl/Tk. In Tcl I can get a variable in an event
> using the %<X> substitution mechanism. For example, I can set up a command
> like:
>
> entry .e -validate 1 -vcmd "checkkey %d"
>
> knowing that the '%d' will be replaced by something useful - whether the
> entry widget has recieved an insert or deletion in this case. The checkkey
> procedure will recieve "insert", "delete" or whatever as its first
> parameter.
>
> What is the Tkinter way of getting that %d value?
import Tkinter as tk
root = tk.Tk()
def check(action):
print {"1":"inserting", "0": "deleting"}.get(action, "should never
happen")
return True
checkId = root.register(check)
entry = tk.Entry(root, validate="key", validatecommand=checkId + " %d")
entry.pack()
root.mainloop()
The above was found by trial and error, so no warranties :-)
You could use check() directly, like
entry = tk.Entry(root, validate="key", validatecommand=check)
but then it will be called without parameters.
Peter
More information about the Python-list
mailing list