如果我在Tkinter中创建一个小部件,我可以指定参与tcl / tk“小部件路径”概念的小部件名称。例如:
from Tkinter import *
button = Button( Frame( Tk(), name = "myframe" ), name = "mybutton" )
str( button ) == ".myframe.mybutton"
是否可以通过它的名称获取一个小部件,在我的示例中使用“mybutton”?
答案 0 :(得分:7)
是的,但您必须持有对根的引用" Tk"实例:只需使用" Tk.nametowidget"方法:
>>> from Tkinter import *
>>> win = Tk()
>>> button = Button( Frame( win, name = "myframe" ), name = "mybutton" )
>>> win.nametowidget("myframe.mybutton")
<Tkinter.Button instance at 0x2550c68>
答案 1 :(得分:4)
每个Tkinter小部件都有一个属性children
,它是widget name
→widget instance
的字典。鉴于此,可以通过以下方式找到任何子组件:
widget.children['subwidget_name'].children['subsubwidget_name'] # ...