如何允许用户在海龟屏幕内输入数据 window

How to allow users to input data inside a turtle screen window

我正在使用 Python 的 turtle 模块创建一个计算器。 我需要用户在 window 中输入信息,而不是在 运行 程序时在弹出的命令行界面中输入信息,然后将信息打印到屏幕 有点像如何在命令提示符中输入信息而不必将信息放入辅助 window.

import turtle
import pyglet
import time

def pen_message(message = "", font = "", font_size = 0, loc_x = 0, loc_y = 0):
    pen = turtle.Turtle()
    pen.speed(0)
    pen.penup()
    pen.color("sky blue")
    pen.goto(loc_x, loc_y)

    pen.write(message, align = "center", font = (font, font_size, "normal"))

def main():

    # Main program window
    win = turtle.Screen()
    win.cv._rootwindow.resizable(False, False)
    win.screensize()
    win.setup(width = 1.0, height = 1.0)
    win.title("Geometric & Algabraic Calculator by @_c0d3_x_")
    win.bgcolor("black")
    win.setup(width = 800, height = 600)
    win.tracer(0)

    # Pen for text

    title = pen_message("Geometric & Algabraic Calculator", "Tech Noir", 15, 0, 200)

    msg = pen_message("Welcome User", "Courier", 15, 0, 150)

    userInput = pen_message(input("Your name: "), "Courier", 15, 0, 100)



main()

这就是我要避免的 该程序让用户在右侧屏幕上输入数据,而不是让他们在实际 window 本身中输入数据。 我将如何实现这一目标?

虽然不是在 turtle window 本身上输入,而不是在控制台上输入,但用户输入可以通过弹出 windows 使用 turtle 提供的两种输入方法获得:

textinput(title, prompt)

numinput(title, prompt, default=None, minval=None, maxval=None)

这些旨在防止控制台样式输入需要捕获的一些错误。它们在 Python 3 中引入,在 Python 2 中不可用。

如果您在代码中执行 listen() 以启用键盘事件,您将需要在调用上述命令后重做 listen() 命令,因为它们成为 listener.

更新:感谢 cdlane 的帮助,我能够对 textinput() 方法进行更多研究并找到该方法本身的 Python 文档页面,这里是 link 供任何人使用将来可能需要它:

[1]: https://docs.python.org/3.1/library/turtle.html#turtle.textinput