2016-04-23 95 views
-1

我使用Tkinter在Python 2.7中創建程序,我想創建3秒的介紹。介紹只是應該顯示3秒鐘然後被刪除的畫布圖像。問題是我的程序啓動3秒鐘,然後代碼完成,所以沒有介紹。我讀到它是因爲輸出緩衝。我不知道如何禁用它,因爲每個人都在談論time.sleep和打印功能。這是我的代碼:Python 2.7 time.sleep()與畫布Tkinter(OS X)

root = Tk() 
root.resizable(0,0) 
root.geometry('800x600+200+200') 

#canvas UI 
w = Tkinter.Canvas(root, bd=0, height=600, width=800) 

def intro(): 
    w.pack() 
    intro = Tkinter.PhotoImage(file=r'intro.ppm') 
    root.intro = intro 
    w.create_image((0,0), image=intro, anchor='nw', tags=("intro")) 
    time.sleep(3) 
    w.delete("intro") 

intro() 

w.pack() 

root.mainloop() 

回答

1

您不能與Tkinter一起使用time.sleep。當您希望程序暫停時,請使用after

def intro(): 
    w.pack() 
    intro = Tkinter.PhotoImage(file=r'intro.ppm') 
    root.intro = intro 
    w.create_image((0,0), image=intro, anchor='nw', tags=("intro")) 
    w.after(3000, w.delete, "intro") 
+1

我想你的意思'w.after(3000,w.delete, 「介紹」)' –

+0

@ TadhgMcDonald - 延森感謝,編輯答案。 –