kivy:按下按钮 - >改变标签的颜色

时间:2015-05-26 14:07:38

标签: python canvas colors label kivy

在kv文件中我添加了一个Label并更改了它的颜色:

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

我的目标是创建某种交通信号灯,以便GUI的用户在一个过程中获得某种视觉反馈。 为此,我必须在运行时更改此Label的颜色。 但是在这种情况下我不理解kv文件和main.py之间的联系。

我尝试过类似的事情:

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

这当然不起作用。

那么如何更改main.py中的标签颜色?拜托,有人可以开导我吗?非常感谢!

1 个答案:

答案 0 :(得分: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添加到Ellipse,这通常是必需的。

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