Turtle window not closing

Peter Otten __peter__ at web.de
Sun Apr 23 03:05:22 EDT 2017


Harshika Varadhan via Python-list wrote:

> Thank you for your response. I apologize for that, this is my first time
> posting so I wasn't sure how to copy my code! I figured out that using the
> clear() method works for clearing the turtle window after drawing the game
> board, but now I am trying to figure out how to make the program wait a
> few seconds or wait for the user to press a key before clearing the turtle
> window (not closing the window, just clearing it). Is there any way to do
> this?

I experimented a bit and found the Screen.ontimer() and onkey() methods. 
Those take a function (a "callback") that will be executed after a certain 
time or when the specified key is pressed. Here are two simple example 
scripts:

demo_turtle_timer.py
# Draw a square, then remove it after two seconds
import turtle

def draw_board():
    myturtle.showturtle()

    # draw a square
    # replace with your code
    for i in range(4):
        myturtle.forward(100)
        myturtle.right(90)

def clear_board():
    myturtle.clear()
    myturtle.hideturtle()

myturtle = turtle.Turtle()
screen = turtle.Screen()

draw_board()

# clear board after 2 seconds
screen.ontimer(clear_board, 2000)

screen.mainloop()

demo_turtle_key.py
# Hit d to draw a square, then hit c to remove it
import turtle

def draw_board():
    myturtle.showturtle()

    # draw a square
    # replace with your code
    for i in range(4):
        myturtle.forward(100)
        myturtle.right(90)

def clear_board():
    myturtle.clear()
    myturtle.hideturtle()

myturtle = turtle.Turtle()
screen = turtle.Screen()

# invoke clear_board() when the c key is pressed
screen.onkey(clear_board, "c")

# invoke draw_board() when the d key is pressed
screen.onkey(draw_board, "d")

screen.listen()
screen.mainloop()





More information about the Python-list mailing list