Python - 乌龟停止倾听
Python - Turtle Stop Listening
正如标题所说。是否可以停止在 python 的 turtle 模块中收听。示例:
turtle.onkey(setChar1, '1')
turtle.onkey(setChar2, '2')
turtle.onkey(setChar3, '3')
turtle.listen()
但是我可以做类似 turtle.stopListen()
的事情吗?
没有明显的 unlisten()
功能,即使您下到 tkinter 基础也是如此。我希望有人能为你想出一个。
turtle 包似乎希望你这样做的方式是:
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')
另一种方法是定义一个全局 listening
变量,您的密钥处理程序会检查该变量以查看它们是否应该处于活动状态。类似于:
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()
按'1'会慢慢画出一个图形;再次按“1”将重置屏幕并重新开始绘制图形。按“2”将关闭该功能,这样按“1”就什么都不做。按“3”将重新打开按键,这样您就可以再次按“1”重新开始绘图。
正如标题所说。是否可以停止在 python 的 turtle 模块中收听。示例:
turtle.onkey(setChar1, '1')
turtle.onkey(setChar2, '2')
turtle.onkey(setChar3, '3')
turtle.listen()
但是我可以做类似 turtle.stopListen()
的事情吗?
没有明显的 unlisten()
功能,即使您下到 tkinter 基础也是如此。我希望有人能为你想出一个。
turtle 包似乎希望你这样做的方式是:
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')
另一种方法是定义一个全局 listening
变量,您的密钥处理程序会检查该变量以查看它们是否应该处于活动状态。类似于:
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()
按'1'会慢慢画出一个图形;再次按“1”将重置屏幕并重新开始绘制图形。按“2”将关闭该功能,这样按“1”就什么都不做。按“3”将重新打开按键,这样您就可以再次按“1”重新开始绘图。