[Tutor] Event handler for optionmenu
geon
geon at post.cz
Mon Aug 15 11:41:30 CEST 2005
Jorge Louis De Castro napsal(a):
> Hi,
>
> I have an optionmenu widget that works just fine except that can't
> find docs to get hold of events as they happen, kinda like the
> command=XYZ of other widgets like buttons.
>
> The code I'm using for the option menu is the following:
>
> OPTIONS = ["en","pt","es","it","fr","de"]
> self.startw.variable = StringVar()
> self.startw.variable.set(OPTIONS[0]) # default value
> self.startw.whis_butt=apply(OptionMenu, (self.startw,
> self.startw.variable) + tuple(OPTIONS))
> self.startw.whis_butt.grid(column=1, row=3)
>
> Now I'd like to have a function like:
>
> def onChange(self):
> # do optionmenu specific stuff
>
> but can't find how to do it, how to associate/bind onChange with the
> optionmenu widget.
> Any help will be highly appreciated.
>
This art is called Trace Variable and could be used like this (copied
and rearranged from one of the prevously posted message from here):
from Tkinter import *
OPTIONS = [
"egg",
"bunny",
"chicken"
]
def callbackFunc(name, index, mode):
#print "callback called with name=%r, index=%r, mode=%r" % (name,
index, mode)
varValue = root.getvar(name)
print varValue
# modify the value, just to show it can be done
#root.setvar(name, varValue)
root = Tk()
var = StringVar()
var.set(OPTIONS[2]) # default value
rememberMe = var.trace_variable('w', callbackFunc)
# var.trace('w', callbackFunc) # this works, too
w = OptionMenu (root, var, *OPTIONS)
w.pack()
root.mainloop()
Hope its what you asked for :-)
--
geon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20050815/e35fe061/attachment.htm
More information about the Tutor
mailing list