微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python乌龟:按下任意键时触发功能

如何解决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 举报,一经查实,本站将立刻删除。