如何控制龟图形窗口的打开和关闭?

时间:2019-02-18 21:36:45

标签: python turtle-graphics

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

当前,我仅通过将turtle.Turtle()分配给这样的变量来打开窗口:

t = turtle.Turtle()

我看了文档,也看了这里,但是什么也没找到。

1 个答案:

答案 0 :(得分:0)

这里展示了如何隐藏和重新显示海龟图形窗口而无需用户输入。它使用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')