Possible bug in Tkinter for Python 2.6

E

Eric Brunel

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!
 
A

Anton Vredegoor

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

maybe here:
http://bugs.python.org/issue3774
The possible bug is a traceback when trying to delete a menu item in
a menu where no items have associated commands.
[...]

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

I ran into the same issue after I downloaded PysolFC-1.1 . I actually
uploaded a patch for PysolFC for it for Python26 on Ubuntu and forgot
all about it, thinking it could be some API change. Thanks for nailing
down the problem a bit more and asking the questions here. It helped me
to discover the bug reporting facility. According to the link above
this bug is already reported and fixed, but it's nice to know anyway.

Now for some really strange bug that still breaks PysolFC-1.1 on windows
for me with Python26 ... (Python25 not affected):

.....

File "c:\python26\lib\lib-tk\Tkinter.py", line 1202, in configure
return self._configure('configure', cnf, kw)
File "c:\python26\lib\lib-tk\Tkinter.py", line 1193, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: image "pyimage237" doesn't exist

I suspect there has been some upgrade or new compilation of tcl
that causes this behavior.

A.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top