Python乌龟等待空格键

问题描述

我刚刚发现了乌龟模块,我正在尝试使用它。我想运行一个绘制静态图形的程序,然后在按下空格键时关闭窗口。这个程序可以很好地绘制图形 - 但是当我按下时什么也没有发生 - 很快,蓝色的轮子开始旋转,窗口在 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()