操作时关闭龟图形GUI

时间:2016-11-26 04:54:18

标签: python user-interface turtle-graphics

我写了一个用于绘制正方形圆圈的python脚本。

import turtle
angle = 0
turn_ang = 30
while (angle <= 360):
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.right(90)
    turtle.right(turn_ang)
    angle = angle + turn_ang
turtle.done()

我希望能够在绘制过程中关闭龟GUI,即while循环运行时。如果我点击关闭,GUI会显示“无响应”。请帮忙。

1 个答案:

答案 0 :(得分:0)

虽然我无法在我的系统上重现您的问题,但我有一个建议可能会解决您的问题。按照目前的设计,你的程序在你将控制权转交给主循环之前就完全运行了,即在你调用turtle.done()之前就已经绘制出来了,这就是乌龟开始侦听窗口关闭等事件的时候。

让我们采用另一种方法,您的绘图代码发生在 之后,您通过将其设置为turtle.done()(或我的示例中为turtle.exitonclick())事件计时器:

import turtle

angle = 0
TURN_ANGLE = 30

def square():
    global angle

    for _ in range(4):
        turtle.forward(100)
        turtle.right(90)

    turtle.right(TURN_ANGLE)
    angle += TURN_ANGLE

    if angle <= 360:
        turtle.ontimer(square, 100)
    else:
        turtle.hideturtle()

turtle.ontimer(square, 100)

turtle.exitonclick()

如果这样可以解决您的直接问题,请告诉我们。请注意,我已经调整了一些代码:使一些事情更好地作为计时器事件;有些事只是因为他们为此而哭泣......