【问题标题】:kivy: press button -> change color of a labelkivy:按下按钮->改变标签的颜色
【发布时间】:2023-04-02 08:33:01
【问题描述】:

在 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 中的标签颜色?有人可以启发我吗?非常感谢!

【问题讨论】:

    标签: python canvas colors label kivy


    【解决方案1】:

    最简单的方法是使用中间属性

    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) 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多