Possible bug in Tkinter for Python 2.6

Eric Brunel see.signature at no.spam
Wed Nov 19 10:57:53 CET 2008


Hello all,

I'm trying out Python 2.6 and I found what might be a bug in the Tkinter  
module. How can I report it?

The possible bug is a traceback when trying to delete a menu item in a  
menu where no items have associated commands.

For example:
------------------------------
 from Tkinter import *

root = Tk()

mb = Menu(root)
root.configure(menu=mb)

fm = Menu(mb)
mb.add_cascade(label='File', menu=fm)

fm.add_command(label='Open')
fm.add_command(label='Quit')

def remove_menu_item():
   fm.delete(1)

Button(root, text='Remove menu item',  
command=remove_menu_item).pack(padx=12, pady=24)

root.mainloop()
------------------------------

Clicking on the button should remove the 'Open' item in the 'File' menu,  
but ends up in a traceback:
   File "/opt/Python2.6+Tk8.5/bin/Linux/lib/python2.6/lib-tk/Tkinter.py",  
line 1410, in __call__
     return self.func(*args)
   File "menu.py", line 15, in remove_menu_item
     fm.delete(1)
   File "/opt/Python2.6+Tk8.5/bin/Linux/lib/python2.6/lib-tk/Tkinter.py",  
line 2670, in delete
     if c in self._tclCommands:

It just seems the _tclCommands attribute on menus is initialized to None  
and never changed if none of the items actually have a command.

Thanks!
-- 
python -c "print ''.join([chr(154 - ord(c)) for c in  
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"



More information about the Python-list mailing list