删除 tkinter 画布上的所有元素并重新绘制,还是使用 move 更新元素?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除 tkinter 画布上的所有元素并重新绘制,还是使用 move 更新元素?相关的知识,希望对你有一定的参考价值。

我的工作是模拟生活在二维世界中的物体(圆)(这些物体会移动,并且可以相互碰撞,它们会发生碰撞).为了查看模拟,我使用了 tkinter 模块.所有定义模拟的每个状态的变量都是使用我在 tkinter 实现之外的递归函数来计算的(这样我就可以运行模拟,而不必浪费时间绘制)。 我的问题是:你认为将模拟状态绘制到 tkinter 画布中会有什么更好的方法:删除所有以前的状态元素,并为每个新的状态重新绘制所有新的状态元素,或者找到一种方法,能够为每个新的状态使用 tkinter 画布方法 move 更新元素的位置。

答案

最好是更新元素而不是创建新的元素。你不能在画布上创建无限的项目,而且你创建的项目越多(即使你后来销毁了它们),画布的速度就越慢。虽然画布可以处理几千个项目,但一旦你开始进入数万个项目,你就会开始出现问题。

以上是关于删除 tkinter 画布上的所有元素并重新绘制,还是使用 move 更新元素?的主要内容,如果未能解决你的问题,请参考以下文章

JS中canvas画布绘制中如何实现缩放,位移,旋转

如何将点击事件绑定到 Tkinter 中的画布? [关闭]

画布上的 tkinter 菜单栏

Python3 tkinter基础 Canvas delete 删除画布中的所有图形

简单的 Qt 小部件来绘制线条和形状(如 tkinter 画布)?

嵌套画布优化 unity3d 2019.3