Python:如何重置海龟图形窗口

问题描述 投票:0回答:2

我正在使用海龟制作纸牌二十一点游戏,每次我玩手海龟时,都会打印上一场游戏,而不是清除窗口。是否有一种方法可以在调用时关闭窗口,或者还有其他原因这样做吗?

python turtle-graphics python-turtle
2个回答
21
投票

我想澄清各种海龟函数的作用,因为在本次讨论中存在误解,包括在当前接受的答案中,因为方法名称本身可能会令人困惑:


turtle.mainloop()
又名
turtle.Screen().mainloop()
将控制权移交给 tkinter 的事件循环。 通常,缺少
turtle.Screen().mainloop()
(或
turtle.Screen().exitonclick()
等)将导致窗口关闭,因为程序将结束,关闭所有内容。 这或其变体之一应该是海龟图形程序中的最后一个语句,除非脚本是从 Python IDLE -n 中运行的。

turtle.done()
(不关闭窗口也不重置任何内容。)
turtle.mainloop()

的同义词

turtle.clear()
删除 this 海龟绘制的所有内容(不仅仅是最后一个)。 否则不影响海龟的状态。

turtle.reset()
执行
turtle.clear()
,然后重置 this 海龟的状态(即方向、位置等)

turtle.clearscreen()
又名
turtle.Screen().clear()
删除 all 绘图和 all 海龟,将窗口重置为原始状态。

turtle.resetscreen()
又名
turtle.Screen().reset()
将屏幕上的所有海龟重置为初始状态。

turtle.bye()
又名
turtle.Screen().bye()
关闭海龟图形窗口。 在调用此命令后,我看不到使用任何海龟图形命令的方法。

turtle.exitonclick()
又名
turtle.Screen().exitonclick()
绑定屏幕点击事件后执行
turtle.Screen().bye()
调用
turtle.Screen().mainloop()


尚不清楚您是否可以从turtle中关闭并重新打开图形窗口,而无需下降到支撑turtle(和Zelle的graphics.py)的tkinter级别

为了在二十一点游戏中开始新手牌,我猜

turtle.reset()
turtle.resetscreen()
是您最好的选择。


© www.soinside.com 2019 - 2024. All rights reserved.