Hi, Thus spoketh Cam Farnell <ms...@bitflipper.ca> unto us on Sat, 26 Nov 2011 12:54:09 -0400:
(..) > > If the user clicks on Menubutton-A then the corresponding handler runs > as expected. If, without making a choice from menu A, the user then > clicks on Menubutton-B then - and this is the nub of the problem - the > handler bound to Menubutton-B does NOT run. If the user now clicks on > Menubutton-C, then the handler for B, yes B, runs. Not sure, I guess this has something to do with the Menu's event-grabbing. Maybe a better solution than binding to the Menubuttons is to use the menu's postcommand option as in: import Tkinter as tk class Application(tk.Frame): def __init__(self, master=None): tk.Frame.__init__(self, master) self.pack() self.MenuButtonA = tk.Menubutton(self,text='Menu Button A') self.MenuButtonA.pack(side='left') self.TA = TA = tk.Menu(self.MenuButtonA) TA.add_command(label='Dummy 1') TA.add_command(label='Dummy 2') self.MenuButtonA['menu'] = TA TA.config(postcommand=self.HandlerA) self.MenuButtonB = tk.Menubutton(self,text='Menu Button B') self.MenuButtonB.pack(side='left') self.TB = TB = tk.Menu(self.MenuButtonB) TB.add_command(label='Dummy 1') TB.add_command(label='Dummy 2') self.MenuButtonB['menu'] = TB TB.config(postcommand=self.HandlerB) self.InfoLabel = tk.Label(self,text='---------') self.InfoLabel.pack(side='left') def HandlerA(self,Event=None): self.InfoLabel['text'] = 'Handler A' print 'Handler A' self.TA.entryconfigure(1, label='FOO') def HandlerB(self,Event=None): self.InfoLabel['text'] = 'Handler B' print 'Handler B' self.TB.entryconfigure(1, state='disabled') app = Application() app.master.title("Sample application") app.mainloop() Best regards Michael .-.. .. ...- . .-.. --- -. --. .- -. -.. .--. .-. --- ... .--. . .-. We fight only when there is no other choice. We prefer the ways of peaceful contact. -- Kirk, "Spectre of the Gun", stardate 4385.3 _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss