2013-12-11 69 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

相关问题