Got it! Because 'menu' is a config option of the top level window's config but not of 'Frame', It's just a matter of calling self.master.config(menu=menu)
Thanks j. >From: Kent Johnson <[EMAIL PROTECTED]> >To: Python Tutor <tutor@python.org> >Subject: Re: [Tutor] Tkinter Menus >Date: Tue, 09 Aug 2005 07:39:35 -0400 > >Jorge Louis De Castro wrote: > > Hello, > > > > I'm having this issue with Tkinter. I have a frame with all my buttons, > > checkboxes et al, and all is working fine. I want to add menus and added >the > > following to my frame (fCanvas) code: > > > > # create a toplevel menu > > menu = Menu(fCanvas) > > fCanvas.config(menu=menu) > > # create a pulldown menu, and add it to the menu bar > > filemenu = Menu(menu, tearoff=0) > > filemenu.add_command(label="Open", command=self.doBrowse) > > filemenu.add_separator() > > filemenu.add_command(label="Exit", command=self.doQuit) > > menu.add_cascade(label="File", menu=filemenu) > > # create analyze pulldown menu > > analyzemenu = Menu(menu, tearoff=0) > > analyzemenu.add_command(label="Start", command=self.doStart) > > analyzemenu.add_command(label="Reset", command=self.doReset) > > menu.add_cascade(label="Analyze", menu=analyzemenu) > > # create about pulldown menu > > aboutmenu = Menu(menu, tearoff=0) > > menu.add_cascade(label="About", menu=aboutmenu) > > > > Gives me the error: > > Traceback (most recent call last): > > File "C:\Workplace\python\im_logparser\msn_parser_gui.py", line 203, >in ? > > myApp = LogAnalyzerGUI() > > File "C:\Workplace\python\im_logparser\msn_parser_gui.py", line 11, in > > __init__ > > self.buildUI() > > File "C:\Workplace\python\im_logparser\msn_parser_gui.py", line 35, in > > buildUI > > fCanvas.config(menu=menu) > > File "C:\Python24\Lib\lib-tk\Tkinter.py", line 1139, in configure > > return self._configure('configure', cnf, kw) > > File "C:\Python24\Lib\lib-tk\Tkinter.py", line 1130, in _configure > > self.tk.call(_flatten((self._w, cmd)) + self._options(cnf)) > > TclError: unknown option "-menu" > > > > > > Unless I replace the menu creation from using my frame to using the >root: > > > > root = Tk() > > menu = Menu(root) > > root.config(menu=menu) > > > > But this obviously creates another window which is not what I want at >all. > > Any thoughts? > >You don't show what fCanvas is...are you creating a Toplevel window? If you >just want one window with a menubar you can add your widgets directly to >root. Here is a simple example: > >from Tkinter import * > >def callback(code): > print "called the callback with code", code > >root = Tk() > >w=Label(root,text="Hello!!") >w.pack() >b=Button(root,text="Bye",command='exit') >b.pack() > ># create a menu >menu = Menu(root) >root.config(menu=menu) > >filemenu = Menu(menu) >menu.add_cascade(label="File", menu=filemenu) >filemenu.add_command(label="New", command=lambda: callback('New')) >filemenu.add_command(label="Open...", command=lambda: callback('Open')) >filemenu.add_separator() >filemenu.add_command(label="Exit", command='exit') > >mainloop() > >Kent > >_______________________________________________ >Tutor maillist - Tutor@python.org >http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor