我在一个循环中创建了几个小部件,每个小部件都有一个顺序名称,例如:
MyQueueId
现在,我有一些路径名为
的小部件1001
是否可以使用路径名销毁小部件?
我不能使用A001
,因为那样我就无法定位特定的小部件。
如果不可能的话,我可以创建一个数组来容纳小部件并从那里处理它们,但是我想知道是否有任何方法可以做到这一点。
答案 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()