2017-02-14 9 views
0

Arbeiten mit Python-Turtle-Grafiken, und ich möchte akzeptieren, ich Benutzer klicken. Ich brauche aber auch, dass mein Programm pausiert, während ich auf den Klick warte, anstatt wie bisher weiterzumachen. Hier ist mein Setup:Wie kann ich in Python's Turtle mein Programm anhalten, während ich auf ein Klickereignis warte?

from turtle import * 
screen = getscreen() 

def getInput(): 
    coordinates = onscreenclick(clickHandler) # Returns x and y coordinates as a list 
    print(coordinates) # Prints "None" as coordinates is empty 

So wie kann ich Setup eine Pause so print(coordinates) wird erst nach einem Klick lief empfangen wird?

Antwort

0

Der folgende Code sollte tun, was Sie wollen.

Die letzte Anweisung in einer Schildkröte Programm wendet sich an die Ereignisschleife Kontrolle über die für Klicks und andere Ereignisse wartet - in der Regel, dass Aussage eines von mainloop(), done() oder exitonclick() (gilt nicht für in dieser Situation):

from turtle import Turtle, Screen 

FONT = ("Arial", 18, "normal") 

def clickHandler(x, y): 
    yertle.undo() # unwrite previous coordinates 
    yertle.write((x, y), align="center", font=FONT) 

yertle = Turtle(visible=False) 

yertle.write((0, 0), align="center", font=FONT) 

screen = Screen() 

screen.onscreenclick(clickHandler) 

screen.mainloop() 

Anstatt Koordinaten an die Konsole zu drucken, habe ich sie in das Fenster selbst schreiben lassen.

Verwandte Themen