2013-12-11 101 views
2

所以我在tkinter的畫布上有一個.gif圖片。我想讓這張照片改成另一張照片......但只有3秒鐘。併爲它恢復到原始圖片。如何在tkinter的特定時間內運行一個函數?

def startTurn(self): 
    newgif = PhotoImage(file = '2h.gif') 
    self.__leftImageCanvas.itemconfigure(self.__leftImage, image = newgif) 
    self.__leftImageCanvas.image = newgif 
    while self.cardTimer > 0: 
     time.sleep(1) 
     self.cardTimer -=1  
    oldgif = PhotoImage(file = 'b.gif') 
    self.__leftImageCanvas.itemconfigure(self.__leftImage, image = oldgif) 
    self.__leftImageCanvas.image = oldgif 

這是快速查看定時器後的第一次嘗試。我知道這段代碼沒有任何意義,但在我無意識地試圖弄明白之前,我寧願有更多有經驗的輸入。

回答

2

Tkinter小部件有一個名爲after的方法,它可以用來在指定的時間段後運行一個函數。要創建一個圖像,然後在三秒鐘後更改它,您應該這樣做:

def setImage(self, filename): 
    image = PhotoImage(file=filename) 
    self.__leftImageCanvas.itemconfigure(self.__leftImage, image=image) 
    self.__leftImageCanvas.image = image 

def startTurn(self): 
    '''Set the image to "2h.gif", then change it to "b.gif" 3 seconds later''' 
    setImage("2h.gif") 
    self.after(3000, lambda: self.setImage("b.gif")) 
+0

+1不知道這一點,謝謝Bryan – Fiver

相關問題