在 Python 的 Turtle 中,如何在等待点击事件时暂停我的程序?
In Python's Turtle, how can I pause my program while waiting for a click event?
正在使用 Python 的海龟图形,我想接受用户点击。但是,我还需要我的程序在等待点击时暂停,而不是像目前那样继续执行。这是我的设置:
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
那么如何设置暂停,以便在收到点击后 print(coordinates)
仅 运行?
下面的代码应该可以满足您的需求。
turtle 程序中的最后一条语句将控制权交给等待点击和其他事件的事件循环——通常该语句是 mainloop()
、done()
或 [=13] 之一=](不适用于这种情况):
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()
我没有将坐标打印到控制台,而是将它们写入 window 本身。
正在使用 Python 的海龟图形,我想接受用户点击。但是,我还需要我的程序在等待点击时暂停,而不是像目前那样继续执行。这是我的设置:
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
那么如何设置暂停,以便在收到点击后 print(coordinates)
仅 运行?
下面的代码应该可以满足您的需求。
turtle 程序中的最后一条语句将控制权交给等待点击和其他事件的事件循环——通常该语句是 mainloop()
、done()
或 [=13] 之一=](不适用于这种情况):
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()
我没有将坐标打印到控制台,而是将它们写入 window 本身。