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

Reply via email to