kivy: 按下按钮 -> 改变标签的颜色
kivy: press button -> change color of a label
在 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 中的标签颜色?有人可以启发我吗?非常感谢!
最简单的方法是使用中介属性
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
注意我在Ellipse中添加了pos,一般情况下大概是必须的。
然后您可以将 ColourLabel 添加到原始示例所在的同一规则,修改代码变为 self.ids.ampel_rot.ellipse_colour = (1, 1, 1, 1)
等
在 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 中的标签颜色?有人可以启发我吗?非常感谢!
最简单的方法是使用中介属性
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
注意我在Ellipse中添加了pos,一般情况下大概是必须的。
然后您可以将 ColourLabel 添加到原始示例所在的同一规则,修改代码变为 self.ids.ampel_rot.ellipse_colour = (1, 1, 1, 1)
等