2015-05-26 56 views
0

的变色我加了一个标签,并改变其颜色:kivy:按下按钮 - >在KV文件的标签

Label: 
    id: ampel_rot 
    canvas.before: 
    Color: 
     rgba: 1, 0, 0, 0.3 
    Ellipse: 
     size: self.size 

我的目标是创造某种交通灯,使用户的GUI在某个过程中具有某种视觉反馈。 为此,我必须在运行时更改此标签的颜色。 但是,在这种情况下,我不明白kv文件和main.py之间的连接。

我想是这样的:

self.ids.ampel_rot.canvas.before.Color.rgba(1, 0, 0, 1) 

这当然行不通。

那么如何更改main.py中的标签颜色?请有人赐教我吗?非常感谢!

回答

2

最简单的方法是使用一个中介性质

from kivy.properties import ListProperty 
class ColourLabel(Label): 
    ellipse_colour = ListProperty([1, 0, 0, 1]) 

然后在KV

<ColourLabel>: 
    canvas.before: 
     Color: 
      rgba: self.ellipse_colour 
     Ellipse: 
      size: self.size 
      pos: self.pos 

请注意,我说的POS至椭圆形,这大概是必要的,一般的。

然后,您可以将ColourLabel添加到与原始示例相同的规则中,并且修改代码变为self.ids.ampel_rot.ellipse_colour = (1, 1, 1, 1)等。