I had tried the following script test.py: -------- import tkinter as tk class Demo(tk.Frame): def __init__(self): tk.Frame.__init__(self, name='demo') self.pack() panel = tk.Frame(self, name='panel') panel.pack() start = tk.Button(text='Start', name='start') start.grid(in_=panel) btn = self.nametowidget('panel.start') btn.config(state='disabled')
Demo().mainloop() -------- It fails on nametowidget() function. My intention is to use 'in_' to change the parent of 'start' widget from the default Tk object to 'panel', but failed with KeyError: 'start'. below is part of the snapshot in pdb, ... > d:\works\python\test.py(11)__init__() -> start = tk.Button(text='Start', name='start') (Pdb) !panel.winfo_parent() '.demo' (Pdb) next > d:\works\python\test.py(12)__init__() -> start.grid(in_=panel) (Pdb) !start.winfo_parent() '.' (Pdb) next > d:\works\python\test.py(14)__init__() -> btn = self.nametowidget('panel.start') (Pdb) !start.winfo_parent() '.' --Jach -- https://mail.python.org/mailman/listinfo/python-list