【发布时间】:2016-07-26 20:48:19
【问题描述】:
我正在尝试创建一个转动轮子的动画,并希望在 while 循环中有一个小的延迟,然后每次都更新轮子。我已经尝试过 tkinter 中的“after”函数以及 python 中的“sleep”函数,但它要么崩溃,要么完成计算,并且只在车轮转动时向我显示没有实际动画的最后位置。
我为转轮创建的函数:
def turning():
#initial wheel position
global position
pos(position)
#infinite loop turning the wheel
while(1):
root.after(1000, spin)
def spin():
global position
global speed
delspike() #delete current wheel
position += speed #calculate next position
if position > 360:
position -= 360
pos(position) #draw new wheel
为什么这不起作用?
【问题讨论】:
-
在绘制或重绘轮子后尝试调用
root.update_idletasks()。 -
@Pythonista:不,
while True循环不是解决方案。它会有完全相同的不良行为。
标签: python loops animation tkinter delay