Bernard Lebel wrote: >Hello, > >I'm trying to bind an event to the changes made to an OptionMenu. Ie >the user chooses a different item, the rest of the Tk window gets >updated. To repopulate the window, a function would be called by the >binding. > >Any suggestion? > > >var1 = StringVar() >var1.set( aTables[0] ) >oOptionMenu = OptionMenu( oRoot, var1, aTables[0], *aTables[1:] ) >sTableName = var1.get() >oOptionMenu.bind( '<Return>', getTableColumns ) >oOptionMenu.pack( fill = X ) > > I might know what you mean - binding optionMenu with say w.bind('<ButtonPress-1>', tisk) is "too early", it is called not after the choice, but at the beginning, at clicking on the button.
I found "curious" solution, here it is: (maybe it could be done otherwise, I would like to know, too..): from Tkinter import * OPTIONS = [ "egg", "bunny", "chicken" ] def callmeagain(): global state if state!=var.get(): print var.get() state=var.get() root.after(1000, callmeagain) root = Tk() var = StringVar() var.set(OPTIONS[2]) # default value state=var.get() w = OptionMenu (root, var, *OPTIONS) w.pack() callmeagain() root.mainloop() Maybe this could help, too. -- geon Vyjímka je pravidlo. Rekurzivní. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor