Tkinter无法为gif制作动画

时间:2017-05-08 20:52:26

标签: python python-3.x user-interface tkinter graphics

我使用tkinter使用以下页面的指导来动画gif: Tkinter animation will not work

但是我无法得到建议。现在我有类似的东西

import tkinter as tk
root = tk.Tk()
frames = [tk.PhotoImage(file = '/home/quantik/Pictures/dice.gif',format="gif -index %i" %(i)) for i in range(5)]
def animate(n):
    if (n < len(frames)):
        label.configure(image=frames[n])
        n+=1
        root.after(300, animate(n))

label = tk.Label(root)
label.pack()
root.after(0, animate(0))
root.mainloop()

然而,它只显示frames中的最后一张图片我尝试了几种方法,但我仍然得到相同的结果。有没有人对为什么会这样做有任何建议?

1 个答案:

答案 0 :(得分:2)

此代码:

root.after(300, animate(n))

与此代码完全相同:

result = animate(n)
root.after(300, result)

注意发生了什么?您不想调用该函数,您想告诉after稍后再调用它。你这样做:

root.after(300, animate, n)

告诉root.afteranimate毫秒后调用300函数,并将n的值作为参数传递给函数。