[Tkinter-discuss] how to disable individual sub-menu elements?

stewart at midtoad.homelinux.org stewart at midtoad.homelinux.org
Wed Oct 13 18:59:00 CEST 2004

I've got an app with a Pmw menubar.  I can disable menu items, and enable them. 
For instance, to disable the first (0th) item in the Tools menu, I can write:
Note that to access items in the Tools menu, I have to use the notation
'Tools-menu'.  This is a sticking point, since it seems to indicate that I have
to add '-menu' to a menu's name in order to access it.  What would I do if the
menu name had a space in it?

So far, so good, however.  But I don't see how to disable individual items under
a cascaded sub-menu.  For instance, under my Tools menu, I have a Build menu
item with 2 cascaded sub-menu items. How would I disable the Build Initscript
(0th) submenu?   like the following?
   (this doesn't work, BTW)
And what if my menu name has a space in it?

Here's the code that creates the submenus:

self.menuBar.addcascademenu('Tools', 'Build',
     'Build init script or linefill', traverseSpec = 'z', tearoff = 1,
     state = 'disabled',
     font = self.font)
for viewer in ('Initscript', 'Linefill'):
     self.menuBar.addmenuitem('Build', 'command', 'Build ' + viewer,
                    command = eval(toolsBldCmds[viewer]),
                    font = self.font,
                    label = 'Build ' + viewer)

        ''' toolsBldCmds = {
            'Initscript': 'self.load',
            'Linefill': 'self.edit_linefill'} '''


More information about the Tkinter-discuss mailing list