问题描述
我刚刚发现了乌龟模块,我正在尝试使用它。我想运行一个绘制静态图形的程序,然后在按下空格键时关闭窗口。这个程序可以很好地绘制图形 - 但是当我按下时什么也没有发生 - 很快,蓝色的轮子开始旋转,窗口在 Windows 中变得没有响应。
如何做得更好?如何在保持“响应窗口”的同时等待?
Python 3.9, 视窗 10
import turtle
from time import sleep
t = turtle.Turtle()
turtle.onkey(turtle.bye,' ')
t.forward(150)
t.rt(108)
while True:
sleep(0.2)
解决方法
您错过了对 listen()
方法的调用,因此您的按键不会被听到。另外,不要重新发明事件循环——while True:
和 sleep()
都不属于像乌龟这样的事件驱动的世界:
from turtle import Screen,Turtle
turtle = Turtle()
turtle.forward(150)
turtle.right(108)
screen = Screen()
screen.onkey(screen.bye,' ')
screen.listen()
screen.mainloop()