Python - Turtle Stop Listening

时间:2016-04-28 20:12:15

标签: python turtle-graphics

正如标题中所说。是否可以停止在python的海龟模块中收听。例如:

turtle.onkey(setChar1, '1')
turtle.onkey(setChar2, '2')
turtle.onkey(setChar3, '3')
turtle.listen()

但我可以做turtle.stopListen()之类的事情吗?

1 个答案:

答案 0 :(得分:1)

即使您下载到tkinter基础,也没有明显的unlisten()功能。我希望有人为你找到一个。

龟包似乎希望你这样做的方式是:

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'重新开始绘图。