首页 > 解决方案 > 使用 Turtle 后如何关闭窗口

问题描述

我正在尝试在 Spyder 和 Jupyter 中使用 Turtle,但是当我尝试关闭窗口时遇到了麻烦。

我在 Windows 10 上的 Spyder 3.3.1 和 Jupyter 5.6.0 上使用 Python 3.7

这是我尝试过的

import turtle as trtl

trtl.forward(100)
trtl.left(90)
trtl.forward(100)
trtl.left(90)
trtl.forward(100)
trtl.left(90)
trtl.forward(100)
trtl.exitonclick()

我工作正常,但如果我关闭窗口并尝试再次运行相同的代码,我会收到以下错误:

---------------------------------------------------------------------------
Terminator                                Traceback (most recent call last)
<ipython-input-9-ad2d84897daf> in <module>()
      1 import turtle as trtl
      2 
----> 3 trtl.forward(100)
      4 trtl.left(90)
      5 trtl.forward(100)

~\Anaconda3\lib\turtle.py in forward(distance)

Terminator: 

我尝试了多种组合done()bye()exitonclick()我无法使其工作

标签: pythonjupyter-notebookspyderturtle-graphics

解决方案


以下是海龟文档的摘录:

如果配置字典中的“using_IDLE”值为False(默认值),也进入mainloop。备注:如果使用带 -n 开关的 IDLE(无子进程),则该值应在 turtle.cfg 中设置为 True。在这种情况下,IDLE 自己的主循环也对客户端脚本处于活动状态。

因此,您可以添加using_IDLE = Trueturtle.cfg文件来解决此问题。这将防止exitonclick()进入主循环。


推荐阅读