2012-12-02 15 views
1

有没有一种方法可以设置画布对象(线条,矩形等)的默认颜色,而无需单独设置每个对象?我知道默认颜色是黑色的,我基本上只是想改变它,以便我随后创建的所有东西都是绿色。有没有办法在Python中用Tkinter做到这一点?有没有一种方法可以在Tkinter中使用画布创建“默认颜色”?

+0

更加紧密地阅读 - 什么是“这时开始”(即如果小部件创建小部件)或什么? –

+0

我说的是时间,所以如果我设置默认颜色,我希望所有的画布对象(线,多边形等)都是默认的颜色。 –

+0

错误 - AFAIK,除非你可以配置一些根对象,并手动覆盖什么不应该是这种情况下,那么你将不得不代理的对象将是讨厌的 - 所以错 - 我会退出这个我害怕:( –

回答

1

不,没有办法设置默认颜色。但是,如果将颜色存储在变量中,则每当创建新项目时都可以使用该颜色。

self.my_color = "red" 
... 
self.canvas.create_rectangle(..., fill=my_color) 

您还可以通过给id为“所有”的itemconfigure方法,一次更改的所有对象。例如:

self.my_color = "green" 
self.canvas.itemconfigure("all", fill=self.my_color) 

更多关于项目标识符(包括特殊的“全部”标识符)看到effbot.orgItem Specifiers: Handles and Tags还有Tags section in the canvas tutorialtkdocs.com

+0

我猜我必须实现这个变量:)我不知道“全部”,这似乎很有趣。我可能会稍后使用它,但现在变量似乎更简单。谢谢! –

+2

@ walle1357:canvas标签非常强大。例如,您可以给所有圆圈标记“circle”并将所有方块标记为“rectangle”,然后仅更改圆圈的颜色或仅更改方块的颜色。你可以给物品多个标签,所以你可以有另一个名为“形状”的标签适用于所有的圆形和方形(但不是嵌入式窗口)。 –

相关问题