【发布时间】:2017-02-14 08:29:05
【问题描述】:
我想在没有 (!!!) canvas.move() 函数的情况下为画布项目设置动画。
例如,我试过这个:
见下文: 坐标是已知的
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()
它不是这样工作的。 怎么了?和/或 在哪里可以找到示例?
【问题讨论】:
-
您为什么不想使用专门用于移动对象的一个功能?
-
至于你做错了什么:你正在创建一个椭圆,导致程序休眠一秒钟不更新屏幕,然后删除椭圆。
-
有一个原因:用 coords=[x1,y1,x2,y2] 为线条设置动画,但只有 x2 应该变化。 (例如机器人中的棱柱关节)。
-
找到了一种方法来做到这一点:见下文 self.cv.create_line(self.x,self.y,self.x+10,self.y+10,width=10,tag=" line") self.cv.after(100, self.moveLine) #--------------------------------- -- def moveLine(self): self.cv.delete("line") self.x+=10 self.y+=10 self.cv.create_line(self.x,self.y,self.x+10,self. y+10,width=10,tag="line") if self.x
-
好的,所以你不是在移动一条线,而是在让它增长。