Gráficos de tortuga: ¿Cómo puedo controlar cuándo se cierra la ventana?

Tengo un pequeño script en python que dibuja algunos gráficos de tortuga. Cuando mi script ha terminado de ejecutarse, la pantalla de la tortuga se cierra automáticamente, así que para poder ver los gráficos por un tiempo, tengo que usar time.sleep(5) al final del script para retrasar el cierre.

¿Hay alguna manera de hacer que esto sea más dynamic, es decir, decirle a python que quiero controlar el cierre de la ventana yo mismo? No me importa si el script no puede hacer otra cosa mientras espero mi comando, pero preferiría no tener que ir a la consola para read() o algo así. Idealmente, el canvas debería permanecer abierto incluso después de que el script termine de ejecutarse, pero estoy de acuerdo con una solución que detenga el script hasta que cierre la ventana que contiene el canvas (o haga clic en el canvas, o lo que sea …).

¿Cómo logro esto?

simplemente use done() o exitonclick() como último comando de su progtwig de tortuga.

 import turtle turtle.forward(100) turtle.left(90) turtle.forward(100) # etc. turtle.getscreen()._root.mainloop() # <-- run the Tkinter main loop 

(edit: turtle.done() como lo sugiere hua a continuación es menos feo).

simplemente use la función mainloop () importada desde el propio módulo de turtle !.

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

Intente agregar input() al final de su código.

Esto espera varios clics, y dibuja una espiral mientras haces clic, hasta que decide salir en el último clic:

 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()