python - 如何控制 turtle 图形窗口的打开和关闭?

标签 python turtle-graphics

我正在编写一个使用 python turtle 图形模块生成图像的程序。有没有办法控制窗口何时打开和关闭?我知道 turtle.bye()turtle.exitonclick() 关闭了窗口,但是再次打开它是有问题的。

目前,我只需将 turtle.Turtle() 分配给这样的变量即可打开窗口:

t = turtle.Turtle()

我查看了文档以及此处,但没有找到任何内容。

最佳答案

这里演示了如何隐藏和重新显示 turtle 图形窗口,而无需用户输入。它使用 tkinter after()方法来安排将来调用我命名为 do_turtle_stuff() 的函数(如果您感兴趣的话)。

它通过“深入幕后”并获取底层 tkinter 根窗口并对其进行操作来实现此目的。为了允许用户执行多个“命令”,它会通过调用 after() 本身重新安排自身运行增益(除非用户输入“exit”)。对于您正在做的事情,您可能不需要这样做。

import turtle


def do_turtle_stuff(root):
    user_input = input('Enter command ("foo", "bar", or "exit"): ')

    if user_input == "exit":
        root.withdraw()  # Hide the turtle screen.
        root.quit()  # Quit the mainloop.
        return
    elif user_input == "foo":
        turtle.forward(50)
        turtle.left(90)
        turtle.forward(100)
    elif user_input == "bar":
        turtle.forward(100)
        turtle.left(90)
        turtle.forward(100)
    else:
        print('Unknown command:', user_input)

    root.after(0, lambda: do_turtle_stuff(root))


root = turtle.getscreen()._root
root.after(0, lambda: do_turtle_stuff(root))
root.mainloop()

print('back in main')
input('Press Enter key to do more turtle stuff ')

root.state('normal')  # Restore the turtle screen.
root.after(0, lambda: do_turtle_stuff(root))
root.mainloop()

print('done')

关于python - 如何控制 turtle 图形窗口的打开和关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54755734/

相关文章:

python - 如何使用 Python 将数据上传到 Tableau Server

python - 在Python中将屏幕输出发送到/dev/null

python - AttributeError: 'NoneType' 对象没有属性 'pencolor'

python - 为什么 Turtle 不能在 Linux 命令行中工作,而是从 IDLE 中工作?

python - 如何使用图表上的 3 个唯一点获取贝塞尔曲线/抛物线的点

python - E1101 :Module 'turtle' has no 'forward' member

python - 具有同一对象的多个 View 集和路由器的 Django Rest Framework

python - Notepad++ 中 Python 的自动缩进

Python 文本分类错误 - 预期字符串或类似字节的对象

python - 命令 onkey() 出错