On Mon, 2006-07-31 at 11:15 -0700, Al in Dallas wrote: > I made the mistake of creating an instance of a widget and assigning it > to a name I'd already used. Now, if I use root.children or > root.slaves(), I can see the "lost" widget, but can I do anything else > with the string of numbers that shows up when I use root.children? I'd > like to destory the widget, for example. it would be even better if I > could create a new name and have it reference the "lost" widget. > > Of course, I can just kill my toplevel and start over. >
Consider the following code run in the python shell: >>> from Tkinter import * >>> r = Tk() >>> b1 = Button(r, text='test') >>> b1.pack() >>> b2 = Button(r, text='test2') >>> b2.pack() >>> r.children {'-1210160564': <Tkinter.Button instance at 0xb7de6a4c>, '-1210225748': <Tkinter.Button instance at 0xb7dd6bac>} >>> r.slaves() [<Tkinter.Button instance at 0xb7dd6bac>, <Tkinter.Button instance at 0xb7de6a4c>] >>> b1 = 'xxx' >>> b1.destroy() Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: 'str' object has no attribute 'destroy' >>> b1 = r.slaves()[0] >>> b1.destroy() >>> So, as long as you know what your widget instance is in root.slaves() or root.children you can assign it to a new name. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- http://mail.python.org/mailman/listinfo/python-list