没有canvas.move()的Tkinter动画

时间:2016-10-05 18:56:11

标签: animation tkinter

我想在没有(!!!)canvas.move()函数的情况下为画布项设置动画。

例如,我试过这个:

见下文:      coords是已知的

def getCoords(i):
     ....
     return coords  #a list

for i in range(4):
     id=canvas.create_oval(getCoords(i))
     canvas.after(1000)
     canvas.delete(id)
     canvas.update()

这不起作用。 怎么了?和/或 我在哪里找到一个例子?

1 个答案:

答案 0 :(得分:0)

您可以使用coords方法获取和更改画布对象的坐标。

这是一个完整的例子,它在x方向上每隔100毫米生成一个椭圆:

import Tkinter as tk

def grow(canvas, item):
    (x1,y1,x2,y2) = canvas.coords(item)
    new_coords = (x1, y1, x2+1, y2)
    canvas.coords(item, new_coords)
    root.after(100, grow, canvas, item)

root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack(side="top", fill="both", expand=True)

item = canvas.create_oval(10, 10, 100, 100, outline="black", fill="red")
grow(canvas, item)

root.mainloop()