2016-11-26 51 views
0

我寫了一個python腳本來繪製一個正方形圓。在操作時關閉turtle圖形用戶界面

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循環運行時)關閉turtle GUI。如果我點擊close,GUI會顯示'Not Responding'。請幫忙。

回答

0

雖然我無法在系統上重現您的問題,但我有一個建議可以解決您的問題。按照目前的設計,您的程序會在您將控制權交還給主循環之前完全運行,即在您撥打turtle.done()之前,即在烏龜開始監聽窗口關閉等事件時,會畫出everthing。

讓我們的另一種方法,其中你(在我的例子或turtle.exitonclick())調用turtle.done()後繪製代碼發生通過把它放在一個事件定時器:

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() 

讓我們知道是否能解決您的直接問題。請注意,我已經調整了一下你的代碼:有些事情可以使它在定時器事件中更好地工作;有些事情只是因爲他們爲此而哭泣...