【问题标题】:How to run a function after a given amount of time in tkinter?如何在 tkinter 中给定时间后运行函数?
【发布时间】:2013-12-11 20:43:35
【问题描述】:

所以我在 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 

这是快速查看计时器后的第一次尝试。我知道这段代码没有意义,但在我盲目地试图弄清楚之前,我宁愿有更多有经验的输入。

【问题讨论】:

    标签: timer tkinter python-3.3


    【解决方案1】:

    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"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-30
      • 2012-07-09
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      相关资源
      最近更新 更多