2015-04-21 26 views
0

我想繪製一條線,但不是像DrawLine()那樣通常出現的線。我希望它速度很快,但速度足夠慢,以至於可以說它正在被繪製。wxPython - 繪製一條線,相對較慢

我試過測試一個for循環,每次畫一個像素一次,睡眠時間爲0.05秒,但它似乎沒有畫出任何一個,直到for循環結束於它畫的點這一切,瞬間。我認爲這與它沒有通過主循環獲得繪製動作有關,所以我在繪製線上使用了CallAfter,這也沒有奏效。

看起來應該有一種方法可以簡單地告訴drawline在x秒的過程中繪製它,或者通過一個動畫對象發送它,您可以在其中指定幀的數量等。不確定在哪裏尋找。有什麼建議麼?

回答

1

問題是,time.sleep(...)也將阻止GUI作爲for循環本身。 wx.Yield通常應該表示「圖形用戶界面,我停止了耗時的過程,做任何你現在要做的事情」。但根據經驗,這基本上從來沒有工作(我還沒有發現爲什麼)。

因此,您可以使用(Link to wxPython Phoenix docs),而不是使用sleep,這與wx.CallAfter類似,但可以指定延遲。通過在內部for循環繪製結束時調用它,線部分繪製事件不應該堆積。