Python Turtle绘图窗口只打开了一会儿就关闭了

16

我最近开始在Python中使用turtle模块,承认我是个完全的新手。我一直有一个问题,就是无法让turtle绘制图形的图形窗口保持打开状态。即使我尝试运行这么简单的代码:

import turtle
wn = turtle.Screen()
tur = turtle.Turtle()
tur.forward(50)

我只能看到 Python 启动器图标在我的 dock 上出现了一瞬间就关闭了。非常感谢任何帮助,顺便提一下,我是在 Aptana Studio 3 中进行这项操作的。

7个回答

23

此外,您可能希望尝试

turtle.mainloop()
在我看来,它的效果比使用Tk略好一些。 来自turtle.mainloop()文档: 启动事件循环-调用Tkinter的mainloop函数。必须是turtle绘图程序中的最后一个语句。如果在-n模式下从IDLE中运行脚本(无子进程),则不能使用turtle.mainloop(),用于交互式使用turtle绘图。 turtle.done()turtle.mainloop()的别名。

1
它们实际上是完全相同的函数(turtle只是从Tkinter重新导出它),但你是正确的,这将节省不必要的导入,因此可能是更好的方法。 - javawizard
1
@Jas0n 这取决于你是否只是运行一组固定的绘图命令并想要查看结果,如果是的话,那么你应该将其放在程序的末尾。 - javawizard

4

添加:

import Tkinter
Tkinter.mainloop()

将以下代码添加到您的脚本末尾即可解决问题。
```python import tkinter as tk root = tk.Tk() root.mainloop() ```
问题出在您创建并绘制屏幕后,Python会立即退出。调用Tkinter.mainloop会同步处理Tkinter(Python turtle库所构建的GUI工具包)中的事件,直到屏幕窗口关闭。

3

或者您可以尝试添加以下内容:

wn.exitonclick()

这将使图形窗口保持打开状态,直到您点击它。


2
当我输入以下代码时:
import turtle as t
t.fd(100)

窗口中的乌龟图形只是出现并关闭。但是当我输入以下代码时:
import turtle as t
t.fd(100)
t.mainloop()

窗口不再像之前那样自动消失。
因此,取决于你如何导入库,t.mainloop()turtle.mainloop()可以用来让窗口保持打开状态,直到你想要关闭为止。
希望这对你有所帮助!

1
这已经在被接受的答案中解释过了。 - Karl Knechtel

1
我有同样的问题。我只能短暂地看到海龟窗口,然后它就消失了。为了解决这个问题,我在代码结尾处写入input()。这将防止海龟窗口关闭,以便我们可以看到发生了什么。
此外,turtle.mainloop()对我有效。

0
在你的海龟绘图程序中,将turtle.done()作为最后一条语句添加进去,可以保持窗口打开。

1
谢谢,但这只是mainloop()的别名,已经作为答案提供了。 - ggorlen

0
对于所有仍然遇到相同问题的程序员,请确保您已安装最新版本的Python。如果没有,请下载并尝试重新运行您的代码。

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接