Python 如何在turtle窗口中获取用户输入?

Python 如何在turtle窗口中获取用户输入?,python,turtle-graphics,Python,Turtle Graphics,我正在学校做作业,想知道如何直接从turtle窗口而不是控制台收集用户输入。turtle中是否有按钮功能?如果没有,请单击某些区域的事件,以便屏幕的某个区域可以用作按钮?用户输入可以使用turtle模块提供的两种图形输入方法获得: 文本输入(标题、提示) numinput(标题、提示、默认值=None、minval=None、maxval=None) 这些设计用于帮助防止控制台样式输入需要捕获的一些错误。这些是在Python3中引入的,在Python2中不可用。不过,在运行turtle时,您

我正在学校做作业,想知道如何直接从turtle窗口而不是控制台收集用户输入。turtle中是否有按钮功能?如果没有,请单击某些区域的事件,以便屏幕的某个区域可以用作按钮?

用户输入可以使用turtle模块提供的两种图形输入方法获得:

  • 文本输入(标题、提示)
  • numinput(标题、提示、默认值=None、minval=None、maxval=None)
这些设计用于帮助防止控制台样式输入需要捕获的一些错误。这些是在Python3中引入的,在Python2中不可用。不过,在运行turtle时,您可以从Python 2中调用tkinter等价物——请搜索示例

如果你想要一个图形按钮,我的建议是你扔一只或两只乌龟,在问题上成为按钮。适当地调整海龟的大小、形状和颜色,然后将
onclick()
处理程序添加到海龟上,而不是屏幕上,这样您就可以单击按钮来调用操作:

from turtle import Turtle, mainloop

BUTTON_SIZE = 60
CURSOR_SIZE = 20
FONT_SIZE = 18
FONT = ('Arial', FONT_SIZE, 'bold')
STATES = (('red', 'OFF'), ('green', 'ON'))
INITIAL_STATE = STATES[0]

def toggle_power(x, y):
    color, state = STATES[button.fillcolor() == 'red']

    button.fillcolor(color)
    marker.undo()
    marker.write(state, align='center', font=FONT)

color, state = INITIAL_STATE

button = Turtle('circle')
button.shapesize(BUTTON_SIZE / CURSOR_SIZE, outline=2)
button.color('black', color)
button.penup()
# button.goto(-200, 200)  # move the button into position

marker = Turtle(visible=False)
marker.penup()
marker.goto(button.xcor(), button.ycor() - BUTTON_SIZE/2 - FONT_SIZE - 2)
marker.write(state, align='center', font=FONT)

button.onclick(toggle_power)

mainloop()
上面的按钮逻辑应该可以在Python 3或Python 2中使用。

欢迎使用!在这个网站上,你应该尝试自己编写代码。之后,如果你有问题,你可以张贴你已经尝试了一个明确的解释什么是不工作,并提供一个解决方案。我建议你读一个好的问题和答案。另外,一定要带上笔记本并阅读。