这是我的代码出错的地方:
onscreenclick(Button.clicked,1)
listen()
mainloop()
onscreenclick()转到Button.clicked,它会检查坐标是否落在任何按钮上。如果是这样,它会以背景颜色绘制它们。但是,如果擦除过程中途,用户再次单击,则擦除停止。
我的问题:有没有什么方法可以让onscreenclick()仅在乌龟未画画时才能使用?
干杯, 杰克。
答案 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')
!