【问题标题】:How to not open the turtle window when i instantiate it当我实例化它时如何不打开乌龟窗口
【发布时间】:2021-07-06 22:48:37
【问题描述】:

有没有办法创建一个turtle.Turtle()的实例而不打开窗口?

我尝试过立即使用turtle.Screen.bye,但这只是打开它然后关闭它。

【问题讨论】:

  • 如果不在画布上,乌龟应该住在哪里?它是一个图形对象。它的一个实例存在于非图形上下文中意味着什么?请澄清您的问题。

标签: python python-turtle


【解决方案1】:

有没有办法创建一个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 设置为不可见,然后将其设置回不透明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 2023-01-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    相关资源
    最近更新 更多