龟图形 - 如何控制窗口何时关闭?

时间:2011-06-04 04:59:30

标签: python turtle-graphics window-management

我有一个小的python脚本,它绘制了一些乌龟图形。当我的脚本运行完毕后,龟屏会自动关闭,所以为了能够查看图形一段时间我必须在脚本末尾使用time.sleep(5)来延迟关闭。

有什么方法可以让它更具动态性,即告诉python我想自己控制窗口的关闭?我不介意在等待命令时脚本是否无法执行任何其他操作,但我更愿意,如果我不必去控制台查找read()或其他内容。理想情况下,即使脚本运行完毕,画布也应该保持打开状态,但是我可以使用一个暂停脚本的解决方案,直到我关闭保存画布的窗口(或者单击画布,或者其他......)。

我如何做到这一点?

5 个答案:

答案 0 :(得分:46)

只需使用done()exitonclick()作为乌龟程序的最后一个命令。

答案 1 :(得分:19)

import turtle

turtle.forward(100)
turtle.left(90)
turtle.forward(100)
# etc.

turtle.getscreen()._root.mainloop()  # <-- run the Tkinter main loop

(编辑:turtle.done()如下面的hua所示,不那么难看。)

答案 2 :(得分:8)

只需使用从turtle模块本身导入的mainloop()函数!。

import turtle


#Draw a square
for i in range(4):
    turtle.forward(200)
    turtle.left(90)


#calling for the mainloop()
turtle.mainloop()

答案 3 :(得分:1)

尝试在代码末尾添加input()

答案 4 :(得分:-3)

等待几次点击 - 并在您点击时绘制螺旋线 - 直到它决定在最后一次点击时退出:

import turtle


win = turtle.Screen()
win.bgcolor("white")

tess = turtle.Turtle()

tess.speed(0)
tess.color("blue")             
tess.pensize(5)                 
offSet=30

def doNextEvent(x,y):

    global offSet
    global win
    tess.forward(20)
    tess.left(1+offSet)
    offSet=offSet-2
    if(offSet<1):
        win.exitonclick()


win.onclick(doNextEvent)
win.listen()
win.mainloop()