2011-10-03 82 views
2

我目前正在使用PIL和Tkinter來顯示圖像。我從網絡傳輸圖像,並希望自動更新我的窗口(就像圖片幻燈片一樣)。我的代碼顯示圖像的作品;但是,我必須單擊顯示窗口上的[x]按鈕才能更新照片。我希望窗口能夠在新照片進入時自動更新,或者至少每5秒運行一次循環(因此窗口會自動關閉並顯示一張新照片,或者照片只是在窗口中更改)。我的代碼是:隨着時間的推移顯示圖像Tkinter和循環

##I have a database of photos i want to display one by one... 

im=image.open(currentphoto) 
root=Tk() 
canvas=... 
photo=imageTk.PhotoImage(im) 
item=canvas.create_image(10,10,anchor=NW,image=photo) 

root.mainloop() 

##want to display next photo either as it comes in or every 5 seconds (whichever is easier -- first method preferred) 

此代碼有效;

+0

你需要一個計時器和一個回調。 – JBernardo

+0

我該怎麼做? – mcfly

+1

您不需要創建計時器 - 事件循環能夠在特定時間點運行代碼。 –

回答

1

調用方法after來安排將來運行的命令。這個命令也可以呼叫after安排自己在未來再次運行,這是完全合法的。

有關顯示標籤每秒更新文本的示例,請參閱this answer以瞭解SO上的其他問題。

+0

我已經試過這個,並且似乎無法得到這個工作。我的整個腳本是用一個簡單的py腳本編寫的。我不使用def或類或任何其他類型。你能幫助你知道嗎? – mcfly

+0

沒有看到你試過的東西或者看到你得到的錯誤我不可能猜到你做錯了什麼。這就是說,你只需_定義一個函數來定義你想要定期運行的函數。 –

+0

好的,希望這會有道理。我的代碼運行如下:True: – mcfly

相關問題