如何解决Python乌龟:按下任意键时触发功能
如何添加使用 turtle
按下的随机键(这意味着我不想要这个:scr.onkey(fun,'r'
)?
我试过了...
import turtle as system
scr=system.Screen()
def p():
print('button pressed')
scr.onkey(p,any)
...但这不起作用。我怎样才能解决这个问题?感谢您的帮助!
解决方法
您可以改用 onkeypress
。
scr.onkeypress(p)
key
参数,如果没有给出,将触发任何按键的函数。
如果给定键,则将 fun 绑定到键的按键事件,或者如果没有给定键,则绑定到任何按键事件。
,这是一个完整的示例 -- 请注意,您也没有在代码片段中显示 listen()
方法,这也是必需的:
from turtle import Screen,Turtle
def handler():
turtle.write("Button pressed!",align='center',font=('Arial',18,'normal'))
screen = Screen()
turtle = Turtle()
turtle.hideturtle()
screen.onkeypress(handler)
screen.listen()
screen.exitonclick()
故事如下:onkey()
方法也称为 onkeyrelease()
,既不接受 None
作为字符,也不接受缺失字符参数。 @TimRoberts 评论不起作用。正如@rdas 指出的那样 (+1),使用 onkeypress()
方法接受 None
字符,或者只是一个缺少的参数,并且可以执行您想要的操作。
但这里有一个问题:您的事件处理程序将在任何键上触发,但您无法在 Turtle 中确定哪个键。如果您需要该功能,请查看 this answer,它提供了一个替换 onkeypress()
方法,在未指定字符的情况下,该方法将键入的字符传递给您的事件处理程序。 (即 None
情况。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。