首页 > 解决方案 > Python Turtle 中的屏幕文本输入

问题描述

使用onkey(). 当我添加screen.textinput()时,屏幕输入执行后键盘停止监听/响应,我不知道为什么:

import turtle

screen = turtle.Screen()

player = turtle.Turtle()
player.color("blue")
player.shape("turtle")
player.penup()

def goForward():
    answer = int(screen.textinput("Turtle Program", "Enter forward in pixels"))
    player.forward(answer)

def goBackward():
    player.backward(5)

turtle.listen()
turtle.onkey(goForward,"Up")
turtle.onkey(goBackward, "Down")

标签: pythonpython-3.xuser-inputturtle-graphics

解决方案


textinput()方法自己listen()来控制键盘输入。所以你需要在listen()之后重做你的电话textinput()

from turtle import Screen, Turtle

def goForward():
    distance = screen.numinput("Turtle Program", "Enter distance in pixels", default=5)
    screen.listen()
    player.forward(distance)

def goBackward():
    player.backward(5)

screen = Screen()

player = Turtle()
player.shape('turtle')
player.color('blue')
player.penup()

screen.onkey(goForward, 'Up')
screen.onkey(goBackward, 'Down')
screen.listen()

screen.mainloop()

推荐阅读