如何在python中刷新窗口

时间:2014-04-22 10:48:03

标签: python tkinter

我有一个显示图像功能的功能。一旦显示,我想为下一个图像刷新它。 例如,如果我有这样的窗口

点击刷新按钮后,窗口应如下所示 enter image description here

最初,每个要素值都设置为零。 怎么做到这一点?我试过grid_forget()它不会给我我想要的东西。我不想清除窗口,我只想清除每个条目框中的条目,我也想清除标签,以便我可以选择另一个图像

提前致谢!

2 个答案:

答案 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