编程语言
首页 > 编程语言> > python – 你可以在创建后更改Canvas对象的属性吗?

python – 你可以在创建后更改Canvas对象的属性吗?

作者:互联网

我正在尝试模拟一个美国交通信号灯,在一个矩形上有3个圆圈,所有这些都是在一套Canvas上绘制的.假设模拟通过以下列顺序每2秒改变显示哪一个光来反映“动画”:绿色>黄色>红色>绿色等永远.

我能想到的唯一方法是使用canvas.move(),canvas.after(),canvas.update()模式移动填充的椭圆形对象,一次叠加一个未填充的圆.我已经得到了逻辑,以适当的速度和正确的顺序移动一个圆圈.问题是,我只是实例化了一个充满“绿色”的圆圈,但我无法使用此方法将其更改为“黄色”或“红色”.看看canvas.delete(“填充”)似乎很愚蠢,并且每隔2秒在一个新的地方重新绘制一个不同的填充,因为这对于这样一个简单的程序来说有很多工作要做.

问题1:有没有办法可以随意使用某种方法或其他方法改变我填充的Canvas对象的填充选项?

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

解决方法:

是的,您应该能够使用config更改画布的设置.

同样,使用itemconfig更改画布上的项目.这确实需要您保存项目的句柄或标记它们.

来自tkinterbook的示例:

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

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

标签:python,tkinter,tkinter-canvas
来源: https://codeday.me/bug/20191006/1862382.html