Possible bug in Tkinter for Python 2.6
Jeremiah Dodds
jeremiah.dodds at gmail.com
Wed Nov 19 05:40:47 EST 2008
On Wed, Nov 19, 2008 at 4:57 AM, Eric Brunel <see.signature at no.spam> wrote:
> 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+-'])"
> --
> http://mail.python.org/mailman/listinfo/python-list
>
I can confirm this behavior in 2.6: Full traceback (as Eric's is missing the
last line)
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/local/lib/python2.6/lib-tk/Tkinter.py", line 1410, in __call__
return self.func(*args)
File "<stdin>", line 2, in remove_menu_item
File "/usr/local/lib/python2.6/lib-tk/Tkinter.py", line 2670, in delete
if c in self._tclCommands:
TypeError: argument of type 'NoneType' is not iterable
The example code works "as expected" under 2.5.
I don't know enough about Tkinter to know whether or not this is actually a
bug, or intended behavior, but it certainly strikes me as being a bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20081119/39016e21/attachment-0001.html>
More information about the Python-list
mailing list