【发布时间】:2021-07-06 22:48:37
【问题描述】:
有没有办法创建一个turtle.Turtle()的实例而不打开窗口?
我尝试过立即使用turtle.Screen.bye,但这只是打开它然后关闭它。
【问题讨论】:
-
如果不在画布上,乌龟应该住在哪里?它是一个图形对象。它的一个实例存在于非图形上下文中意味着什么?请澄清您的问题。
标签: python python-turtle
有没有办法创建一个turtle.Turtle()的实例而不打开窗口?
我尝试过立即使用turtle.Screen.bye,但这只是打开它然后关闭它。
【问题讨论】:
标签: python python-turtle
有没有办法创建一个turtle.Turtle() 的实例而不打开 窗户?
您可以使用turtle 库的tkinter 基础来模拟这一点。您可以独立在海龟级别上工作并达到 tkinter,或者您可以在 tkinter 中嵌入工作:
from tkinter import Canvas, Tk
from turtle import RawTurtle
(window := Tk()).withdraw()
canvas = Canvas(window, width=500, height=500)
canvas.pack()
(turtle := RawTurtle(canvas)).hideturtle()
turtle.speed('fast')
for _ in range(9):
turtle.circle(100)
turtle.left(40)
window.deiconify()
window.mainloop()
程序创建并立即撤回 tkinter 窗口。然后它会花时间绘制海龟图形。完成后(在我的系统上大约 10 秒),它会打开一个窗口供用户查看。或者,例如,如果您想提取一个多边形并为用户打印它,则永远不要打开该窗口。
我们可以更快地绘制这个图形,我选择了足够慢的速度来展示它的原理。 Tk 可能还有其他方法可以做到这一点,例如将窗口的 alpha 设置为不可见,然后将其设置回不透明。
【讨论】: