texto - turtle python 3
Gráficos de Python Turtle: ¿cómo puedo controlar cuándo se cierra la ventana? (5)
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()
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 dinámico, 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 lienzo debería permanecer abierto incluso después de que el script termine de ejecutarse, pero estoy de acuerdo con una solución que detiene el script hasta que cierre la ventana que contiene el lienzo (o haga clic en el lienzo, o lo que sea ...).
¿Cómo logro esto?
Intente agregar input()
al final de su código.
simplemente use done()
o exitonclick()
como último comando de su programa de tortuga.
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()
import turtle
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
# etc.
turtle.getscreen()._root.mainloop() # <-- run the Tkinter main loop
(Editar: turtle.done()
como lo sugiere hua a continuación es menos feo.)