python - 如何控制海龟图形窗口的打开和关闭?
问题描述
我正在编写一个使用 python turtle 图形模块生成图像的程序。有没有办法控制窗口何时打开和关闭?我知道turtle.bye()
并turtle.exitonclick()
关闭窗口,但再次打开它是个问题。
turtle.Turtle()
目前我只是通过分配给这样的变量来打开窗口:
t = turtle.Turtle()
我查看了文档,也查看了这里,但我没有找到任何东西。
解决方案
这里展示了如何在不需要用户输入的情况下隐藏和重新显示海龟图形窗口。它使用 tkinterafter()
方法来安排对我命名的函数的未来调用do_turtle_stuff()
(如果你感兴趣的话)。
它通过“深入了解”并获取底层tkinter
根窗口并对其进行操作来实现此目的。为了允许用户执行几个“命令”,它通过调用自身来重新安排自己运行增益after()
(除非用户键入“退出”)。对于您正在做的事情,您可能不需要这样做。
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')
推荐阅读
- regex - 如何在bash中忽略字符串中的正则表达式语法
- javascript - 页面重定向到另一个页面(仪表板)后如何使用firebase身份验证用户数据?
- regex - 使用正则表达式从字符串中获取所有唯一单词
- python - 在 Python 中比较来自不同文件的两行并将匹配项写入输出文件
- amazon-web-services - 如何在 AWS CloudSearch 中实现“按人气排序”?
- javascript - 获取不同modals bootstrap中输入框的值
- flutter - 如何解决在手机上运行颤振应用程序而不是在 Windows 10 中运行模拟器的问题
- r - 在 GoogleAnalyticsR 中找不到函数“ga_clientid_activity”
- javascript - 从加载可填充 PDF 的对象/嵌入/iframe 中检索 blob
- webots - 在 Webots 中哪里可以找到 Robotis op 2 的行走参数限制?