Kivy 按钮 on_press 背景颜色没有改变

时间:2021-07-12 07:47:59

标签: python user-interface raspberry-pi kivy

Kivy 按钮组件 on_press 颜色在 Kivy 2.0.0 中不起作用。

我检查了这个 Question 并遵循了答案,但是,这些答案并没有解决我面临的问题。

我的 UI kv 文件按钮组件代码

Button:
    text: Settings
    background_color: (.3, 2.15, .96, 1)
    on_press: self.background_color = (1.0, 0.0, 0.0, 1.0)
    on_press: root.on_settings_click()
    on_press: self.background_color = (.3, 2.15, .96, 1)

按钮响应的 Python 代码

class SettingsMenu(Panel):
    def on_general_settings_click(self):
        self._parent.show_new_panel(GeneralSettings(self._parent))

编辑:

我使用 on_release 也没有对 UI 按钮组件进行任何更改。还有什么我在这里遗漏的吗?

    on_press: self.background_color = (1.0, 0.0, 0.0, 1.0)
    on_press: root.on_general_settings_click()
    on_release: self.background_color = (.3, 2.15, .96, 1)

1 个答案:

答案 0 :(得分:1)

使用 background_color 更改 on_press 在 Kivy 2.0.0 中有效。但如果更改发生得太快,它可能不会显示在您的 GUI 中。在 background_color 事件响应中更改 on_press 两次可能只会显示其最后一次设置,因此还可以考虑使用 on_release。要记住的另一件事是 background_color 只是 background_normalbackground_down 图像的乘数。如果您希望 normaldown 状态为纯色,则必须将 background_normal 和/或 background_down 设置为 ''。以下是使用这些原则的示例:

Button:
    text: 'Settings'
    background_normal: ''
    background_down: ''
    background_color: (1, 0, 0, 1)
    on_press: self.background_color = (0, 1, 0, 1.0)
    on_press: root.on_settings_click()
    on_release: self.background_color = (0, 0, 1, 1)