我有一个小的python脚本,绘制一些龟图形。当我的脚本运行完毕后,龟屏自动关闭,所以为了能够看到图形一段时间我必须在脚本末尾使用time.sleep(5)
来延迟关闭。
有什么方法可以使这个更动态,即告诉python我想自己控制窗口的关闭?我不介意脚本在等待我的命令时不能做任何其他事情,但我更愿意,如果我不必去控制台寻找read()
或其他东西。理想情况下,即使脚本运行完毕,画布也应该保持打开状态,但我可以使用一个暂停脚本的解决方案,直到我关闭保存画布的窗口(或单击画布,或者其他......)。
我该如何做到这一点?
只需使用turtle.done()
或exitonclick()
作为龟程序的最后一个命令。
import turtle
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
# etc.
turtle.getscreen()._root.mainloop() # <-- run the Tkinter main loop
(编辑:turtle.done()
,如下面的hua所示,不那么难看。)
只需使用从turtle模块本身导入的mainloop()函数!
import turtle
#Draw a square
for i in range(4):
turtle.forward(200)
turtle.left(90)
#calling for the mainloop()
turtle.mainloop()
尝试在代码末尾添加input()
。
这等待几次点击 - 并在您点击时绘制螺旋 - 直到它决定在最后一次点击时退出:
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()