[英]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.