在Tkinter中按名称搜索小部件是否可行?

2024-10-02 02:24:38 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我在Tkinter中创建了一个小部件,我可以指定一个小部件名称,它参与tcl/tk“小部件路径”的概念。例如:

from Tkinter import *
button = Button( Frame( Tk(), name = "myframe" ), name = "mybutton" )
str( button ) == ".myframe.mybutton"

在我的示例中,是否可以通过一个名为“mybutton”的小部件来获取它?


Tags: namefromimport路径名称概念部件tkinter
2条回答

每个Tkinter小部件都有一个属性children,它是widget namewidget instance的字典。因此,可以通过以下方式找到任何子窗口小部件:

widget.children['subwidget_name'].children['subsubwidget_name'] # ...

是的,但是必须保留对根“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>

相关问题 更多 >

    热门问题