创建后能否更改画布对象的属性?

2024-04-20 04:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着模拟一个美国红绿灯,矩形上有3个圆圈,都画在布景上。模拟应该通过以下顺序每2秒更改显示的灯光来镜像“动画”:绿色>;黄色>;红色>;绿色,等等。

我能想到的唯一方法是使用canvas.move(),canvas.after(),canvas.update()模式移动一个填充的椭圆形对象,一次叠加一个未填充的圆。我已经掌握了以正确的速度和顺序移动一个圆的逻辑。问题是,我只是实例化了一个用“green”填充的圆,但是我不能用这个方法将它改为“yellow”或“red”。每2秒就要用不同的填充重新绘制一个新的位置,删除(“填充”),这看起来很傻,因为对于这样一个简单的程序来说,这是一件很重要的事情。

问题1:是否有方法可以使用某种方法或其他方法随意更改填充画布对象的fill选项?

问题2:我是否错误地处理了这种情况?有没有更好的方法来模拟这个?


Tags: 对象方法gtmove镜像顺序动画canvas
1条回答
网友
1楼 · 发布于 2024-04-20 04:28:01

是的,您应该能够用^{}更改画布的设置。

同样,使用^{}更改画布上的项。这确实要求您保存项目的句柄或标记它们。

tkinterbook的示例:

i = w.create_line(xy, fill="red")

w.coords(i, new_xy) # change coordinates
w.itemconfig(i, fill="blue") # change color

相关问题 更多 >