如何按键停止'turtle.onscreenclick'功能?



我做了一个简单的程序,允许你点击屏幕用画东西。您移动到的每个点都记录在一个数组中。我想在用户完成绘制内容时使用 JSON 将此数组写入文本文件。

import turtle
from turtle import Turtle, Screen
pastMovementsX = [0]
pastMovementsY = [0]
screen = Screen()
screen.setup(500, 350)
screen.screensize(600, 600)
def move(x, y):
        moveto = turtle.goto(x, y)
        pastMovementsX.append(turtle.xcor())
        pastMovementsY.append(turtle.ycor())
turtle.onscreenclick(move) 

turtle.onscreenclick()之后的任何代码都不会运行。我假设它会不断检查屏幕上的单击,因此无法继续该程序。

我尝试了几件事。特别是线程和多处理来做到这一点。它没有工作,经过一些研究,似乎 turtle 模块不喜欢或与线程/多处理配合得很好。

如何让程序停止turtle.onscreenclick()并在按键后继续执行进一步的代码?

turtle.onscreenclick(( 之后的任何代码都不会运行。我假设它 不断检查屏幕上的单击,因此无法继续 与程序。

您的

问题无效,因为您的前提不正确:

from turtle import Turtle, Screen
def move(x, y):
        moveto = turtle.goto(x, y)
        pastMovementsX.append(x)
        pastMovementsY.append(y)
pastMovementsX = [0]
pastMovementsY = [0]
screen = Screen()
screen.setup(500, 350)
screen.screensize(600, 600)
turtle = Turtle()
screen.onclick(move)
turtle.circle(50)
screen.mainloop()

onclick() 方法设置一个处理程序函数并继续下一个语句,它不检查任何内容。 这是由 tkinter 事件循环完成的,该循环由程序中的最后一个mainloop()调用传输到。

我的猜测是,您没有正确考虑代码计划执行的操作顺序,并描述这些操作可能有助于解决您的实际问题。

相关内容

  • 没有找到相关文章

最新更新