首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在创建画布对象后,是否可以更改其属性?

在创建画布对象后,是否可以更改其属性?
EN

Stack Overflow用户
提问于 2012-10-21 03:07:19
回答 1查看 24.9K关注 0票数 14

我正在尝试模拟一个美国交通灯,在一个矩形上画三个圆圈,都画在一张画布上。模拟应该通过按以下顺序每2秒显示一次光来镜像“动画”:绿色>黄色>红色>绿色,以此类推。

我能想到的唯一方法是使用canvas.move(),canvas.after(),canvas.update()模式移动一个填充的椭圆对象,一次叠加一个未填充的圆。我已经掌握了以适当的速度和正确的顺序移动圆圈的逻辑。问题是,我只是实例化了一个用“绿色”填充的圆,但我不能使用这种方法将它更改为“黄色”或“红色”。每隔2秒就必须填充(“canvas.delete”)并使用不同的填充在一个新的位置重新绘制它,这似乎很愚蠢,因为对于这样一个简单的程序来说,这是一个很大的工作量。

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

问题2:我处理这个场景是不是不正确?有没有更好的方法来模拟这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-21 03:10:22

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

同样,使用itemconfig()更改画布上的项目。这确实要求您保存项目的句柄或对其进行标记。

基于tkinterbook的示例:

代码语言:javascript
复制
item = canvas.create_line(xy, fill="red")

canvas.coords(item, new_xy) # change coordinates
canvas.itemconfig(item, fill="blue") # change color
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12991717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档