繁体   English   中英

操作时关闭turtle图形GUI

[英]Closing turtle Graphics GUI while operation

我写了一个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()

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

尽管我无法在系统上重现您的问题,但我建议可以解决您的问题。 按照当前的设计,在将控制权移交给主循环之前,程序将完全运行,即在调用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()

让我们知道这是否可以解决您的直接问题。 请注意,我对您的代码进行了一些调整:一些事情可以使它作为计时器事件更好地工作; 有些事情仅仅是因为他们为此而哭泣...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM