Kristen Aw wrote: > I don't understand why I get this error. I'm trying to delete the existing points, then redraw them after this bit of code to 'animate' my simulation. > > def update(self, point1, point2): > # Deletes existing points > if self.point1: > self.w.delete(point1) > self.master.update_idletasks() > if self.point2: > self.w.delete(point2) > self.master.update_idletasks() > #draw new point > # . . . > > The error message that I get is: > . . . in update > self.w.delete(point1) > File "C:\PYTHON26\LIB\LIB-TK\Tkinter.py", line 2181, in delete > self.tk.call((self._w, 'delete') + args) > TclError: invalid command name ".44593760"
Your snippet and your problem description are both a bit short to be sure. Is self.w a Tkinter.Canvas widget? It seems the canvas doesn't exist anymore when you're trying to delete objects on it. Here's a demonstration: >>> import Tkinter as tk >>> root = tk.Tk() >>> canvas = tk.Canvas(root, height=100, width=100) >>> canvas.delete("123") >>> canvas.destroy() >>> canvas.delete("123") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 2184, in delete self.tk.call((self._w, 'delete') + args) _tkinter.TclError: invalid command name ".139675427025264" -- http://mail.python.org/mailman/listinfo/python-list