I'm testing on 10.7.4, but it needs to work on 10.6 as well. On Jun 15, 2012, at 11:32 AM, Kevin Walzer wrote:
> What version of OS X? > > Sent from my iPhone > > On Jun 15, 2012, at 2:06 PM, Lynn Oliver <rayco...@gmail.com> wrote: > >> Along the same lines, I managed to get application/preferences to work on >> the Mac, but while application/about shows the name of my Python app (built >> with pyinstaller), it displays the 'Tcl & Tk' dialog. >> >> The TkDocs-TK Tutorial on menus shows this as a TODO item >> (http://www.tkdocs.com/tutorial/menus.html). While I was able to figure out >> the preferences menu by looking at the idlelib sources, I couldn't get the >> application/about menu to work. >> >> Any suggestions? >> >> Lynn >> On Jun 15, 2012, at 6:45 AM, Kevin Walzer wrote: >> >>> Hi Mark, >>> >>> Please see my answers below: >>> >>> >>>> Here's a bit of code used to create the Help menu: >>>> >>>> if MAC: >>>> self.master.createcommand("tkAboutDialog", self.about_action) >>>> self.master.createcommand("::tk::mac::ShowHelp", >>>> self.help_action) >>>> helpMenu = tk.Menu(self.menubar, name="help") >>>> helpMenu.add_command(label="Help", underline=0, >>>> command=self.help_action) >>>> if not MAC: >>>> helpMenu.add_command(label="About", underline=0, >>>> command=self.about_action) >>>> self.menubar.add_cascade(label="Help", underline=0, >>>> menu=helpMenu) >>> >>> There's some magic in the Tk-Cocoa help menu--if you define the >>> tk::mac::showHelp command and map it to your function that calls user help, >>> you don't need to add a separate entry for help. (There's already an entry >>> hard-coded for help, along with the search field.) So the >>> helpMenu.add_Command(label="Help")... stuff is redundant. >>> >>>> I end up with these menus: >>>> >>>> ActivePython3.2 >>>> About ActivePython3.2 # correctly invokes my about action >>> >>> If you're just running the app from Python and not wrapping it with a tool >>> such as py2app, this is the expected behavior. The "about" menu picks up >>> the name of the executable from its info.plist file, which in this case is >>> Python. >>> >>>> >>>> Help >>>> Search # some apple-specific thing that just appears >>>> ActivePython3.2 Help # invokes my help action >>>> Help # invokes my help action >>> >>>> >>>> Problems: >>>> >>>> (1) I don't know how to rename the "ActivePython3.2" menu to "My App". >>>> (2) I don't know how to rename the "About ActivePython3.2" menu option >>>> to "About" or "About My App". >>> >>> See above--you need to wrap this as a standalone app using py2app or >>> cx_freeze. >>> >>>> (3) I don't know how to eliminate the "ActivePython3.2 Help" menu option. >>>> If I don't do helpMenu.add_command() on the Mac that menu has no >>>> items ('cos the About is in the ActivePython3.2 menu) and so the >>>> Help menu doesn't appear at all. >>> >>> If you don't add any items to the help menu but just define it, I would >>> expect to see an entry called "ActivePython 3.2 Help" that calls up a >>> dialog which says, "Help isn't available for ActivePython 3.2." >>> >>> This is how I set up my help menu is one of my Python apps: >>> >>> self.createcommand('::tk::mac::ShowHelp', self.runHelp) >>> >>> self.helpmenu = Menu(self.mb, name='_help') >>> self.mb.add_cascade(label='Help', menu=self.helpmenu) >>> self.helpmenu.add_command(label='Phynchronicity Help', >>> command=self.runHelp) >>> self.helpmenu.add_command(label='Contact Code by Kevin', >>> command=self.getHelp) >>> self.helpmenu.add_command(label='Web Site', command=self.getWebSite) >>> self.helpmenu.add_command(label='User Forum', >>> command=self.getUserForum) >>> self.helpmenu.add_command(label='Newsletter', >>> command=self.getNewsletter) >>> >>> Hope this helps, >>> Kevin >>> >>> -- >>> Kevin Walzer >>> Code by Kevin >>> http://www.codebykevin.com >>> _______________________________________________ >>> Tkinter-discuss mailing list >>> Tkinter-discuss@python.org >>> http://mail.python.org/mailman/listinfo/tkinter-discuss >> _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss