绘图时停止Python turtle onscreenclick()

时间:2017-09-17 09:53:27

标签: python turtle-graphics

这是我的代码出错的地方:

onscreenclick(Button.clicked,1)
listen()
mainloop()

onscreenclick()转到Button.clicked,它会检查坐标是否落在任何按钮上。如果是这样,它会以背景颜色绘制它们。但是,如果擦除过程中途,用户再次单击,则擦除停止。

我的问题:有没有什么方法可以让onscreenclick()仅在乌龟未画画时才能使用?

干杯, 杰克。

3 个答案:

答案 0 :(得分:1)

如何创建一个可以改变点击价值的变量呢?

这样的事情:

isdrawing = False
if (Button.clicked == 1) and (isdrawing = False):
    isdrawing = True
elif (Button.clicked == 1) and (isdrawing = True):
    isdrawing = False

然后,您可以检查变量isdrawing是True还是False,并要求它的某个值来运行其他函数。

答案 1 :(得分:0)

过了一会儿,我想出了一个解决方案:

Facebook developer account

答案 2 :(得分:0)

这是我经常使用的一个更简单的解决方案 - 在事件处理程序中禁用事件并在退出时重新启用:

import turtle

turtle.speed('slowest')

def drawShape(x, y):
    turtle.setheading(turtle.towards(x, y))
    turtle.goto(x, y)

def clicked(x, y):
    turtle.onscreenclick(None)
    drawShape(x, y)
    turtle.onscreenclick(clicked)

turtle.onscreenclick(clicked)

turtle.mainloop()

它也适用于乌龟光标的ondrag()处理程序,但确保在拖动时使用turtle.speed('fastest')