[Tkinter-discuss] How do I identify which menu item has bee selected?
ggpolo at gmail.com
Wed Aug 19 15:32:01 CEST 2009
2009/8/19 thicket <mark_eastwood at ntlworld.com>:
> I have a
> 'partial' solution to what I'm trying to achieve (code snippet below)
> The issue is that all the 'Actions' after and including Stock/Order history
> will display the same sub-menu (self.mnth_mu).
> The code as it stands enables me to identify which month has been selected
> for a particular 'Action' but not which 'Action' it refers to i.e. works
> fine if self.mnth.mu is used only once.
Well, my real suggestion would be to change this application. Don't
you think it is weird that when you select a month for a specific
action, all the other actions will have the same month selected ? How
can you know which one is active by looking in the menus ? Even if you
changed it to have multiple tcl variables, you still wouldn't know
which exact thing is active.
Nevertheless, I gave it a try and the code is below. It does create a
new menu for each action, but it is just about the same effort of
creating a single one.
root = Tkinter.Tk()
print month_var.get(), action
month_menu = Tkinter.Menu(action_menu, tearoff=False)
for month in ('Jan', 'Feb', 'Mar'):
menu = Tkinter.Menu(tearoff=False)
action_menu = Tkinter.Menu(menu, tearoff=False)
month_var = Tkinter.StringVar()
for action in ('A1', 'A2'):
root['menu'] = menu
-- Guilherme H. Polo Goncalves
More information about the Tkinter-discuss