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

Reply via email to