[英]Python turtle: trigger function on any key pressed
如何添加用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
參數,任何按鍵都會觸發 function。
如果給定 key,則將 fun 綁定到 key 的 key-press 事件,如果沒有給出 key,則綁定到任何 key-press-event。
這是一個完整的示例 - 請注意,您也沒有在代碼片段中顯示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( onkey()
方法也稱為onkeyrelease()
,既不接受None
作為字符,也不接受缺少的字符參數。 @TimRoberts 評論不起作用。 正如@rdas 注釋(+1),使用onkeypress()
方法,它接受一個None
字符,或者只是一個缺少的參數,並做你想要的。
但這里有一個問題:您的事件處理程序將在任何鍵上觸發,但您無法在 Turtle 中確定哪個鍵。 如果您需要該功能,請查看此答案,該答案提供了一個替代onkeypress()
方法,在未指定字符的情況下,該方法將鍵入的字符傳遞給您的事件處理程序。 (即None
情況。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.