2010-07-21 337 views
0

如果我用一些填充整个窗口的文本创建了Tkinter窗口,并且现在想用新文本替换窗口,是否有刷新窗口的方法?如何在Tkinter中刷新窗口

例如:

a= 100 
    win= Tk() 
    win.geometry("500x300") 
    while a > 0: 
     if a%2 == 0: 
      lbl = Label (win, bg = "purple") 
      lbl.pack() 
     else: 
      lbl = Label (win, bg = "blue") 
      lbl.pack() 
     a= x-1 

这段代码的问题是,Tkinter的窗口不刷新,只是提供了最终的结果,而不是示出了窗口改变颜色的。 感谢您的帮助!

+0

http://stackoverflow.com/questions/1960725/refreshing-a-window-in-tkinter – 2010-07-21 03:20:16

回答

9

这不是改变用户界面状态的方法,因为即使你刷新了窗口,它也会很快你不会注意到,而是改变状态,等待一段时间再改变状态,例如在这里我展示如何制作动画色彩

from Tkinter import * 

index = 0 
def changeColor(): 
    global index 
    if index%2==0: 
     label.configure(bg = "purple") 
    else: 
     label.configure(bg = "blue") 
    index+=1 
    label.after(1000, changeColor) 

root = Tk() 
mainContainer = Frame(root) 
label = Label(mainContainer, text="") 
label.configure(text="msg will change every sec") 
label.pack(side=LEFT, ipadx=5, ipady=5) 
mainContainer.pack() 
label.after(1000, changeColor) 
root.title("Timed event") 
root.mainloop() 
+0

重复太谢谢你了! – samuel 2010-07-21 04:15:37