【问题标题】:Python: How to reset the turtle graphics windowPython:如何重置海龟图形窗口
【发布时间】:2016-03-06 03:51:23
【问题描述】:

我是一个使用海龟制作纸牌的二十一点游戏,每次我玩一只手龟时都会打印上一场游戏而不是清除窗口。是否有一种方法可以在调用时关闭窗口,或者还有其他原因吗?

【问题讨论】:

  • 对不起,如果我误会了,你想要turtle.clear()吗?
  • 据我所知,turtle.clear() 只会删除海龟画的最后一件事。我需要删除多个东西。

标签: python turtle-graphics


【解决方案1】:

我想澄清一下各种乌龟函数的作用,因为在这个讨论中存在误解,包括在当前接受的答案中,因为方法名称本身可能会造成混淆:


turtle.mainloop() aka turtle.Screen().mainloop() 将控制权交给 tkinter 的事件循环。通常,缺少turtle.Screen().mainloop()(或turtle.Screen().exitonclick()等)会导致窗口关闭,因为程序将结束,关闭所有内容。除非脚本是从 Python IDLE -n 中运行的,否则它或其变体应该是海龟图形程序中的最后一条语句。

turtle.done()(不关闭窗口或重置任何内容。)turtle.mainloop() 的同义词

turtle.clear() 删除 this 乌龟绘制的所有内容(不仅仅是最后一件事)。否则不影响乌龟的状态。

turtle.reset() 执行turtle.clear() 然后重置this海龟的状态(即方向、位置等)

turtle.clearscreen() aka turtle.Screen().clear() 删除所有绘图和所有海龟,将窗口重置为原始状态。

turtle.resetscreen() aka turtle.Screen().reset() 将屏幕上的所有海龟重置为其初始状态。

turtle.bye() aka turtle.Screen().bye() 关闭海龟图形窗口。调用此命令后,我看不到使用任何海龟图形命令的方法。

turtle.exitonclick() aka turtle.Screen().exitonclick() 绑定屏幕点击事件后执行turtle.Screen().bye() 调用turtle.Screen().mainloop()


不清楚是否可以从 turtle 内部关闭和重新打开图形窗口,而不会下降到支持 turtle(和 Zelle 的 graphics.py)的 tkinter 级别

为了在您的二十一点游戏中开始新的一手牌,我猜turtle.reset()turtle.resetscreen() 是您最好的选择。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 点评来源: 嗨,虽然链接是分享知识的好方法,但如果它们在未来被破坏,它们将不会真正回答问题。将回答问题的链接的基本内容添加到您的答案中。如果内容太复杂或太大而无法在此处放置,请描述所提出解决方案的总体思路。请记住始终保留对原始解决方案网站的链接引用。见:How do I write a good answer?
    猜你喜欢
    • 2018-04-17
    • 2019-04-23
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 2018-03-19
    • 1970-01-01
    • 2019-07-12
    相关资源
    最近更新 更多