furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Rysowanie w Turtle - Wait On Click

WERSJA ROBOCZA WPISU

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

Nie ma jednak funkcji, która by pozwalała czekała na kliknięcie myszką w dowolnym miejscu aby kontynuować rysowanie - taka pauza 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 też jest 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 wait():
    global clicked

    turtle.update()
    clicked = False

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

    clicked = False

#------------------------------------------------------

turtle.update()

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

turtle.exitonclick() # zamiast mainloop()+onscreenclick()
Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury