是否可以通过路径名销毁Tkinter小部件?

时间:2019-05-31 02:49:56

标签: python python-3.x tkinter

我在一个循环中创建了几个小部件,每个小部件都有一个顺序名称,例如:

MyQueueId

现在,我有一些路径名为

的小部件
1001

是否可以使用路径名销毁小部件?

我不能使用A001,因为那样我就无法定位特定的小部件。

如果不可能的话,我可以创建一个数组来容纳小部件并从那里处理它们,但是我想知道是否有任何方法可以做到这一点。

1 个答案:

答案 0 :(得分:0)

如果将tk.Widget(...)的返回值保存到列表或字典中,则无需使用名称即可访问任何窗口小部件。到目前为止,这是管理循环中创建的窗口小部件的最常用和便捷的方法。

示例:

widgets = []
for item in itemlist:
    myWidget=tk.Widget(root, name=item)
    myWidget.pack()
    widgets.appen(widget)
...
for widget in widgets:
    widget.destroy()

如果您确实需要将名称转换为小部件,则tkinter在名为nametowidget的每个小部件上提供一种方法,该方法接受小部件的名称并返回实例。

root.nametowidget('.!mainapplication.!itemframe.item1').destroy()