首页 > 解决方案 > 如何使用 KV 语言在 Kivy 中制作自定义按钮?

问题描述

我正在尝试使用自定义精灵来制作自定义按钮。我知道如何在 KV 语言中做到这一点,但我宁愿坚持使用 Python。

我看到为精灵设置一些源属性在 KV 语言中工作,所以我尝试了这个:

from kivy.app import App
from kivy.uix.button import Button

class RoundButton(Button):
    def __init__(self, **kwargs):
        Button.__init__(self, **kwargs)
        self.source = '/home/shamildacoder/Pictures/Painting.png'

class TestApp(App):
    def build(self):
        return RoundButton(text='HELLO WORLD')

TestApp().run()

但这只是显示一个普通按钮。有什么帮助吗?

标签: pythonbuttonkivykivy-language

解决方案


据我了解,您想要一个Image允许您处理on_press事件的地方,Behaviors如下所示:

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


class ImageButton(ButtonBehavior, Image):
    pass

class MyApp(App):  
    def build(self):  
        return ImageButton(source="kivy.png", on_press=lambda *args: print("press"))

if __name__ == "__main__":  
    MyApp().run()  

推荐阅读