Es gibt keine offensichtliche unlisten()
Funktionalität, auch wenn Sie auf die Tkinter-Grundlagen zurückgreifen. Ich hoffe, dass jemand einen für dich hat.
Die Art und Weise das Schildkröte Paket, das Sie es tun scheint zu wollen, ist:
def keys_activate():
turtle.onkey(setChar1, '1')
turtle.onkey(setChar2, '2')
turtle.onkey(setChar3, '3')
turtle.listen()
def keys_deactivate():
turtle.onkey(None, '1')
turtle.onkey(None, '2')
turtle.onkey(None, '3')
Ein weiterer Ansatz ein global listening
Variable, die Ihre Schlüssel-Handler zu sehen geprüft zu definieren wäre, wenn sie aktiv ist oder nicht sein sollte. Etwas wie:
from turtle import *
listening = False
def listen(listen_original=listen):
global listening
listen_original()
listening = True
def unlisten():
global listening
listening = False
def setChar1():
if not listening:
return
reset()
for i in range(36):
forward(200)
left(170)
def setChar2():
unlisten()
def setChar3():
listen()
onkey(setChar1, '1')
onkey(setChar2, '2')
onkey(setChar3, '3')
listen()
done()
Drücken Sie '1' wird langsam eine Figur zeichnen; Durch erneutes Drücken von '1' wird der Bildschirm zurückgesetzt und die Figur neu gezeichnet. Durch Drücken von "2" wird diese Funktion ausgeschaltet, so dass das Drücken von "1" nichts bewirkt. Durch Drücken von '3' werden die Tasten wieder eingeschaltet, so dass Sie erneut '1' drücken können, um die Zeichnung neu zu starten.