Kivy 可点击的替代按钮的图像

3 投票
1 回答
6761 浏览
提问于 2025-04-18 12:44

我想用一张图片来代替传统的按钮,使用的是kivy这个工具。
我尝试使用background_disabled_normalbackground_disabled_down这两个属性。
这是我在.kv文件中写的按钮部分:

Button:
    on_press: root.do_action()
    background_disabled_normal: str(False)
    Image:
        source: 'icon.png'
        y: self.parent.y + self.parent.height - 250
        x: self.parent.x
        size: 250, 250
        allow_stretch: True

但是没有成功。

1 个回答

12
background_disabled_normal: str(False)

这里应该是一个指向图片的文件路径,而不是一个布尔值的字符串。而且,这个属性是用来设置按钮在禁用状态下的背景颜色 - 你确定不想用 background_normal 吗?

其实还有另一种方法可以做到这一点,可能更适合你;按钮的功能被抽象成了 ButtonBehavior,可以和任何小部件结合使用。

from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.image import Image

class ImageButton(ButtonBehavior, Image):
    pass

这个 ImageButton 会拥有图片的所有属性(你可以设置图片来源)同时 也会有按钮的所有事件(比如按下时的事件等)。

撰写回答