我写了一个用于绘制正方形圆圈的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会显示“无响应”。请帮忙。
答案 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()
如果这样可以解决您的直接问题,请告诉我们。请注意,我已经调整了一些代码:使一些事情更好地作为计时器事件;有些事只是因为他们为此而哭泣......