我有一個窗口,我正在渲染一個圖像。每一幀的位置都會改變,所以問題在於(顯然)它不會從最後一幀消失。我想每一幀清除窗口。我無法在任何地方找到窗口對象(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. 如何清除CEP窗口
- 2. 清除PhpExplorer窗口
- 3. 如何清除gmaps信息窗口
- 4. 如何清除在命令窗口
- 5. ZeroBrane - 如何清除調試窗口?
- 6. 如何「清除」WinAPI透明窗口
- 7. 如何清除tkinter(Python)中的窗口?
- 8. 當graphics.py對象到達窗口的邊緣時關閉窗口
- 9. 清除窗口背景win32API
- 10. 清除PyCharm運行窗口
- 11. 清除聊天窗口
- 12. 如何使用javascript清除模態窗口背後的窗體?
- 13. 如何清除父窗口小部件中的所有窗口小部件?
- 14. 在窗口後面模糊清除窗口中的內容(DWM)
- 15. 清除窗口中的存檔位
- 16. CGS清除窗口 - pygame的錯誤
- 17. 清除模態窗口上的Cookie
- 18. 從繪圖對象中清除窗口
- 19. Java - 清除NetBeans中的輸出窗口
- 20. Logcat窗口立即清除運行
- 21. 如何清除TMOUT後的終端窗口
- 22. 如何在使用turbolinks時清除窗口變量
- 23. 如何使用刷新方法清除kendo窗口數據?
- 24. 如何清除崇高2中的SublimeREPL窗口
- 25. 如何在git bash窗口中清除github自動登錄?
- 26. 如何清除openCV中的窗口內容
- 27. 如何清除兒童控制窗口的背景電話
- 28. 如何清除整個控制檯窗口?
- 29. 如何清除NASM中的控制檯窗口?
- 30. 如何在彈出窗口中添加清除按鈕
你必須爲窗口中的所有事情做點事情。但是因爲'GraphWin'是'Tkinter.canvas'小部件的子類,它意味着它有'find_all()'和'delete()'方法,因爲'GraphWin'不會覆蓋它們(查看模塊的源代碼)。前者將返回畫布上所有對象ID號的列表。然後你可以遍歷列表中的這些數字並在每個數組上調用delete()方法。 – martineau