我目前有一个包含数十个图像路径的列表框,当选择列表框中的元素时,图像将显示在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中更新图像或者我可以采取什么方法的想法?
答案 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)