Tkinter在给定时间后更改图像

时间:2016-08-18 18:58:25

标签: python tkinter

我目前有一个包含数十个图像路径的列表框,当选择列表框中的元素时,图像将显示在gui的中间。

我的第三张图片有两种不同的外观,所以我写道:

        #Third image
        elif (self.index==3):
            start = clock()
            self.label.configure(image=self.photo2[1])#first image
            if (start>2):
                self.label.configure(image=self.photo2[2])#second image

现在,当用户点击第三个元素时,它将首先显示第一个图像,然后如果在两秒后重新显示它将显示第二个图像,这样就可以了。

然而,我想要的是我的第三张图片在两秒钟后自动更改而不重新点击。有没有办法在tkinter中更新图像或者我可以采取什么方法的想法?

1 个答案:

答案 0 :(得分:2)

这是一种常见的模式。您应该使用Tk.after来运行更改图像的函数,然后安排下一次更改。

def change_image(label, imagelist, nextindex):
    label.configure(image=imagelist[nextindex])
    root.after(2000, lambda: change_image(label, imagelist, (nextindex+1) % len(imagelist)))

然后叫它一次让它永远做它。

root = Tk()
setup_your_stuff()
change_image(root.label, root.photo2, 0)