簡體   English   中英

Python 烏龜:在按下任意鍵時觸發 function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM