2010-07-21 338 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