python - 如何使用 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()
但这只是显示一个普通按钮。有什么帮助吗?
解决方案
据我了解,您想要一个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()
推荐阅读
- c - NGINX 源代码;ngx_cdecl 和 char *const *argv 的问题
- python - 问题从Python中for循环中具有相同日期的两个数据框的列中减去值
- javascript - Discord js角色编辑不改变颜色
- shell - 使用 sed 追加到文件中的一行
- javascript - 获取 Map 对象的最后一个键
- sql - 带有 FOREIGN KEY 的 SQL 语法
- javascript - 如何获取 JavaScript 中窗口打开的第二个窗口的引用?
- javascript - 如何将带有 json 对象的文件导入另一个 js 文件?
- flutter - Flutter:登录失败后不显示显示对话框
- angular - 如何滚动到Angular中的元素?