我有一个显示图像功能的功能。一旦显示,我想为下一个图像刷新它。 例如,如果我有这样的窗口
点击刷新按钮后,窗口应如下所示
最初,每个要素值都设置为零。
怎么做到这一点?我试过grid_forget()
它不会给我我想要的东西。我不想清除窗口,我只想清除每个条目框中的条目,我也想清除标签,以便我可以选择另一个图像
提前致谢!
答案 0 :(得分:2)
如果您有很多Entry小部件,例如您的示例,则可以使用winfo_children()
方法获取对象的所有子小部件的列表。然后,您可以遍历此列表以重置和配置它包含的小部件:
root = Tk()
def clear_all():
for widget in root.winfo_children(): # get all children of root
if widget.winfo_class() == 'Entry': # if the class is Entry
widget.delete(0,END) # reset its value
elif widget.winfo_class() == 'Label': # get Label widgets
widget.config(bg='green') # and change them as well
# set up misc. widgets
for i in range(5):
Entry(root).pack()
Label(root, height=10, width=100, bg='red').pack()
Button(root, text='Refresh', command=clear_all).pack()
mainloop()
答案 1 :(得分:0)
您需要做的就是将条目小部件设置为您想要的任何默认值:
# if you do not use the textvariable attribute:
self.entry1.delete(0, "end")
self.entry1.insert(0, "0")
self.entry2.delete(0, "end")
self.entry2.insert(0, "0.0")
# if you DO use the textvariable attribute:
self.entry1var.set("0")
self.entry2var.set("0.0")
这一切都记录在Entry手册页和大多数tkinter教程中。在研究如何使用单个小部件时,一个好的开始是effbot.org。例如,以下是Entry小部件上的页面:http://effbot.org/tkinterbook/entry.htm