在Kivy中更改按钮的背景色

2024-04-29 16:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我是基维的新手,在指定按钮的背景色时遇到问题。我举个简单的例子:

# custombutton.py

from kivy.app import App
from kivy.uix.widget import Widget


class MyWidget(Widget):
    pass


class CustomButtonApp(App):
    def build(self):
        return MyWidget()


if __name__ == '__main__':
    CustomButtonApp().run()

以及随附的kv文件custombutton.kv

#:kivy 1.7.2

<MyWidget>:
    canvas:
        Color:
            rgb: (0.93, 0.93, 0.93)
        Rectangle:
            pos: self.pos
            size: self.size

    Button:
        center: self.parent.center
        font_size: 14
        height: 28
        background_color: (1.0, 0.0, 0.0, 1.0)
        text: "I'm a Button"

我肯定我漏掉了一些显而易见的东西,但我已经把这件事搞了一个多小时了,结果一事无成。这个按钮看起来有点暗红色:

enter image description here

这不是为Kivy中的按钮指定背景色的方法吗?

谢谢!


Tags: fromposimportselfappsizewidget按钮
2条回答

这是一段时间以来,因为这是第一次张贴,所以也许随着更新,他们想出了一个更好的解决方案:

Button:
    background_normal: ''
    background_color: 1, .3, .4, .85

因为按钮有默认的灰色,所以添加背景色只会使按钮着色。通过将background_normal设置为“”将默认设置重置为白色。在白色的画布上,背景色的效果和你想象的一样。

文档

1)https://kivy.org/docs/api-kivy.uix.button.html?highlight=button#module-kivy.uix.button

啊,这是常见的困惑。问题是Button.background_color实际上是作为一种色调工作的,而不仅仅是块颜色。因为默认的背景是一个灰色的图像(如果你做了一个没有样式的按钮,你通常会看到这个图像),你最终看到的是一个灰色图像的红色色调-这是你观察到的暗红色。

您可以通过将背景图像替换为纯白色(不必超过几个像素)或使用background_normalbackground_down属性来获得所需的行为。当你的背景色染上新的纯白色图像时,你得到了你想要的纯红色。

我想这在文档中不是很清楚,我会努力改进的。

相关问题 更多 >