如何允许用户在海龟屏幕内输入数据 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
我正在使用 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()
虽然不是在 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