From: Dave O. <dav...@mo...> - 2005-04-12 16:43:57
|
I hope this is the right list to ask these questions. I've been writing a lot of Python apps on Mac OS X using TclTkAqua, and in general things are working out great. However, the behavior of menus is a little puzzling, and I'm hoping someone can help me out: 1. While Tk supports the notion of an "accelerator" in menu items it doesn't appear that Tkinter supports them. At least, I've tried passing in a string to show (like "W" for Close, or "Q" for Quit) but it doesn't appear in the menu item. As a workaround I'm just adding the accelerator to the menu item label itself, but is there a better way? 2. When I launch my Python app my menus appear ok, but under OS X the first menu (which should have the name of the application, according to the Apple Human Interface Guidelines) says "Python". Is there a way to access this menu, and to hook into its "Quit Python" item to change it to something my own app can handle? 3. Is there a way to have an active menubar with no windows? Currently I'm creating a root (Tkinter.Tk()) and then withdrawing it, and associating a menubar with it as toplevel. Then as other toplevel windows appear, for instance in response to a "New" or "Open" command, I add menus to them as their own menus. Is there a better way of doing something like this? Thanks muchly for any assistance! Dave Opstad |
From: Jeff H. <jeffh@ActiveState.com> - 2005-04-21 04:59:56
|
> I hope this is the right list to ask these questions. I've=20 > been writing a lot of Python apps on Mac OS X using=20 > TclTkAqua, and in general things are working out great.=20 This is probably the best list. > However, the behavior of menus is a little puzzling, and I'm=20 > hoping someone can help me out: >=20 > 1. While Tk supports the notion of an "accelerator" in menu=20 > items it doesn't appear that Tkinter supports them. At least,=20 > I've tried passing in a string to show (like "W" for Close,=20 > or "Q" for Quit) but it doesn't appear in the menu item. As a=20 > workaround I'm just adding the accelerator to the menu item=20 > label itself, but is there a better way? This is a known quirk - what it actually requires is very specific naming for the accelerator: https://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D691973&grou= p_id=3D1299 7&atid=3D112997 > 2. When I launch my Python app my menus appear ok, but under=20 > OS X the first menu (which should have the name of the=20 > application, according to the Apple Human Interface=20 > Guidelines) says "Python". Is there a way to access this=20 > menu, and to hook into its "Quit Python" item to change it to=20 > something my own app can handle? This is because you are actually running a python application. I'm not sure if there is a way around this (anybody?). > 3. Is there a way to have an active menubar with no windows?=20 > Currently I'm creating a root (Tkinter.Tk()) and then=20 > withdrawing it, and associating a menubar with it as=20 > toplevel. Then as other toplevel windows appear, for instance=20 > in response to a "New" or "Open" command, I add menus to them=20 > as their own menus. Is there a better way of doing something=20 > like this? The menu will be associated with the active window, and some window always has to be active, right? Having one main menu that you apply to all the toplevels is valid. Jeff |