此问题在此处已有答案:
turtle delete writing on Screen and Rewrite(2个答案)
去年关闭。
是的,标题听起来很愚蠢,但听我说:
我正试着做一个时钟程序,我需要分钟和小时的手实际上'移动'自己(如在分钟或小时变化时分别移动)通过撤销一条线并在不同的地方再次绘制它。然而,时钟的指针在程序开始时就转到正确的位置;例如,如果您在2:49,它会把指针放在2:49.然后,当你到达2:50(或任何其他时间,就此而言),指针停留在同一个地方,不随时间更新.奇怪的是?没有错误消息或任何东西(这就是我在堆栈上创建帐户的原因溢出)
下面是我使用的代码的相关部分:
import turtle
import datetime
tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec = map(int,time.localtime()[:6])
# I add extra values here to offset it for the next chunk of code
hora = tm_hour+360
minuto = tm_min+360
segundo = tm_sec+360
# I ran out of names for variables in the code so I resorted to español
while True:
if hora != tm_hour:
hour.undo()
hour.seth(90)
hour.rt(30*tm_hour)
hour.fd(20)
hora = tm_hour
if minuto != tm_min:
minute.undo()
minute.seth(90)
minute.rt(6*tm_min)
minute.fd(60)
minuto = tm_min
if segundo != tm_sec:
second.undo()
second.seth(90)
second.rt(6*tm_sec)
second.fd(40)
segundo = tm_sec
字符串
1条答案
按热度按时间e4yzc0pl1#
turtle graphics suit本质上是一个带有绘制二维图形工具的tkinter gui。与大多数GUI一样,在某些时候需要“给予”程序的控制,并允许GUI的主循环将更新绘制到屏幕上,并允许任何用户交互。因此,任何长时间持续的过程都会导致窗口冻结和不可用。
这就是事件和事件监听器派上用场的地方。为了让你的时钟使用turtle图形工作,允许窗口以每秒为基础不断更新自己,你需要使用事件监听器,比如
ontimer
监听器。我给予你一个例子,说明秒针如何使用这种方法操作,剩下的就交给你了。
字符串