Turtle python重置屏幕并在用户提示下显示新数据



我对蟒蛇龟还比较陌生,正在四处试验。我正试图根据用户提供的方程为某些运动绘制位移角图。我计划将所有内容存储到一个数据文件中,这样我就可以在不更改python读取的文件目录的情况下不断添加新数据。我决定将每组数据编译成一个列表项,并通过for循环运行整个程序,逐集读取数据。例如,读取set1的数据,绘制图形并提示用户输入重置海龟屏幕并读入set2的数据。。。

然而,我被困在最后一部分,在为第一个数据集绘制图形后,用户需要提示(在乌龟屏幕上左键单击(退出屏幕/清除屏幕并绘制新的数据集。我试过ture.clearscreen((和ture.exitonclick((,但它总是给我一只乌龟。终止程序错误`

canvas = turtle.Screen()
for item in fulldatalist:   
**filter and check valid data #assume valid data in this case)
turtle.setworldcoordinates(llx,lly,urx,ury) #the 4 values are based on the data input
**code for drawing of graph
canvas.exitonclick()

这是我当前使用的代码(**是其他部分的伪代码(,但它给了我一个错误:tkinter。TclError:无效的命令名"。!画布";。

我只在绘制完第一张图,用户点击屏幕后才收到所有提到的错误。当我只使用一个数据集时,绘制图形的代码部分就可以工作了。

感谢任何帮助:(Tysm!

编辑:我把它改了一点,所以现在看起来像这个

for item in fulldatalist:   
canvas = turtle.Screen()
**filter and check valid data #assume valid data in this case)
turtle.setworldcoordinates(llx,lly,urx,ury) #the 4 values are based on the data input
**code for drawing of graph
done = input('enter to proceed with next data set')
canvas.resetscreen()

这很好,但我意识到这很不方便,因为用户必须返回终端并按enter键才能移动到下一个数据集。是否可以使用exitonclick或任何允许关闭窗口/单击窗口移动到下一个数据集的功能?

您似乎对canvas.exitonclick()有两个误解。首先,它不会停止并等待点击发生,它只是注册一些代码,以便在点击发生时运行。第二,其名称中的exit表示";拆下乌龟系统并退出mainloop()";。不是你想要的。

我可以想象这样做:

def present_data():
screen.onclick(None)  # disable handler inside handler
item = fulldatalist.pop()
screen.resetscreen()
# filter and check valid data #assume valid data in this case)
screen.setworldcoordinates(llx, lly, urx, ury)
# code for drawing of graph
if fulldatalist:
screen.onclick(present_data)  # reenable handler
screen = turtle.Screen()
present_data()

但由于不能使用完整的代码,我无法测试它。

相关内容

  • 没有找到相关文章

最新更新