我有一個窗口,我正在渲染一個圖像。每一幀的位置都會改變,所以問題在於(顯然)它不會從最後一幀消失。我想每一幀清除窗口。我無法在任何地方找到窗口對象(GraphWin)的清晰方法。而且我不能使用undraw(),因爲那樣我就不得不在屏幕上做所有事情。Graphics.py:如何清除窗口?
1
A
回答
1
首先要考慮的是如果您只是在幀之間移動圖形對象,然後調用它們的move()
方法而不是擦除並重繪它們。如果你必須清除屏幕,那麼我建議:
在下降到Tkinter級別之前,我會考慮使用Zelle Graphics自己的基礎。原因是Zelle Graphics保留了它自己的對象並行記錄,如果你從Tkinter級別刪除它們,你可能會使兩者不同步。這裏是我的建議:
def clear(win):
for item in win.items[:]:
item.undraw()
win.update()
但是,未提取的項目很慢,可能比您想要的幀速率更慢。所以,你要關閉自動刷新:
win = GraphWin(..., autoflush=False)
,然後調用:
update()
,只要你有東西呈現給你的用戶 - 這將加快顯卡,因爲它贏得了沒有顯示所有的中間步驟。
但是,以上建議不適用適用於用win.plot()
方法繪製的東西。繪圖在比其他Zelle圖形更低的層次上實施,因此您需要下降到Tkinter以清除繪圖。例如,請參閱How to undraw plot with Zelle graphics? 。
相關問題
- 1. 如何「清除」WinAPI透明窗口
- 2. 如何清除在命令窗口
- 3. ZeroBrane - 如何清除調試窗口?
- 4. 如何清除tkinter(Python)中的窗口?
- 5. 如何清除gmaps信息窗口
- 6. 當graphics.py對象到達窗口的邊緣時關閉窗口
- 7. 清除PyCharm運行窗口
- 8. 清除窗口背景win32API
- 9. 如何清除父窗口小部件中的所有窗口小部件?
- 10. 在窗口後面模糊清除窗口中的內容(DWM)
- 11. Logcat窗口立即清除運行
- 12. 從繪圖對象中清除窗口
- 13. 如何清除NASM中的控制檯窗口?
- 14. 如何清除TMOUT後的終端窗口
- 15. 如何清除兒童控制窗口的背景電話
- 16. 如何使用刷新方法清除kendo窗口數據?
- 17. 如何在使用turbolinks時清除窗口變量
- 18. 如何清除整個控制檯窗口?
- 19. 如何刪除窗口?
- 20. 任何方式來清除python的IDLE窗口?
- 21. 如何清除通知窗口中的通知但保持通知窗口打開
- 22. 在IE中從父窗口打開一個新窗口會清除父窗口的緩存
- 23. Python graphics.py。如何獲得checkMouse()的回報?
- 24. 在graphics.py窗口中創建鼠標點擊繪製點的列表
- 25. 如何從窗口中刪除視圖?
- 26. 如何清除
- 27. 如何清除recyclerView清單?
- 28. 如何在Visual Studio編輯器窗口中正確清除文本?
- 29. 如何窗口
- 30. OpenGL窗口被清除,沒有WM_PAINT消息
你必須爲窗口中的所有事情做點事情。但是因爲'GraphWin'是'Tkinter.canvas'小部件的子類,它意味着它有'find_all()'和'delete()'方法,因爲'GraphWin'不會覆蓋它們(查看模塊的源代碼)。前者將返回畫布上所有對象ID號的列表。然後你可以遍歷列表中的這些數字並在每個數組上調用delete()方法。 – martineau