for plusOneFrames in range(0, 25):
xxUL = xxUL + 0
yyUL = yyUL - 5
myText = screen.create_text( xxUL, yyUL, text = "+1", font = "Arial 25", fill = "black" )
screen.update()
sleep(0.05)
screen.delete( myText )
screen.delete( myText )
所以基本上,每当用户点击时,它会使+1上浮,但是每当一个上浮,我再次点击时,已经上浮的+1就会停在原来的位置,就停在那里。如果我再按一下,它会做同样的事,直到有几百个。我怎样才能使它永远不会停止动画,即使它在一个为循环?你知道吗
如果不使整个程序停止运行,就不能在Tkinter回调的中间使用
sleep
。毕竟,这正是sleep(0.05)
的意思:使整个程序停止运行0.05秒。你知道吗它不仅仅是
sleep
——不管这个函数做什么,当它运行时,这就是正在运行的代码;没有其他代码可以运行,所以你的UI被冻结了。你知道吗有两种基本解决方案:
第二种可能看起来更简单,但不幸的是,在多线程应用程序中使用Tkinter有点麻烦。那么,让我们来做第一个。像这样:
(我不知道这里的具体细节是否适用于您的实际代码,事实上,如果您的代码没有使用python3.0+,或者您没有在另一个函数中本地执行此操作,我知道它不起作用。但是由于您没有显示实际的代码,因此我不得不进行一些猜测,希望您能够理解如何调整它。)
有关详细信息,请参见Why your GUI app freezes;有关事件循环或事件驱动编程的良好教程,请参见google。你知道吗
相关问题 更多 >
编程相关推荐