所以我在tkinter的画布上有一张.gif图片。我希望这张照片换成另一张照片......但只有3秒钟。并恢复原来的图片。
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
这是快速查看计时器后的第一次尝试。我知道这段代码没有意义,但在我不假思索地试图解决之前,我宁愿有更多有经验的输入。
答案 0 :(得分: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"))