在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中的标签颜色?拜托,有人可以开导我吗?非常感谢!
答案 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)
等。