Search on blog:

Rysowanie w Turtle - Wait On Click

Turtle posiada funkcję exitonclick(), która po zakończeniu rysowania czeka na kliknięcie myszką w dowolnym miejscu okna aby je zamknąć i wtedy nie trzeba klikać specjalnie w przycisk [X] aby je zamknąć.

Nie ma jednak funkcji, która by zatrzymywała wykonywanie kodu i czekała na kliknięcie myszką w dowolnym miejscu okna w celu dalszego rysowanie - czyli takiej pauzy w rysowaniu (kliknij aby kontynuawać).

Takiej funkcji nie posiada też Tkitner, na którym jest zbudowane Turtle ale taką funkcję posiada moduł graphics.py, który jest także zbudowany na Tkinter.

To jest próba zrobienia czegoś podobnego w Turtle w dużej mierze wzorując się na kodzie z graphics.py.

import turtle
import time

# base on `getMouse()` in graphics.py

clicked = False

def _on_click(x, y):
    global clicked

    clicked = True

turtle.onscreenclick(_on_click)

def waitonclick():
    global clicked

    turtle.update()
    clicked = False

    while not clicked:
        turtle.update()
        time.sleep(.1)

    clicked = False

#------------------------------------------------------
# code wait on click before it draws next line in rectangle

turtle.update()

for _ in range(4):
    waitonclick()
    turtle.forward(100)
    turtle.left(90)

turtle.exitonclick() # instead of mainloop()+onscreenclick()
If you like it
Buy a Coffee