Ввод текста на экране в Python Turtle - PullRequest
0 голосов
/ 04 ноября 2019

Простая программа, использующая 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")

1 Ответ

0 голосов
/ 05 ноября 2019

Метод 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()
...