Kivymd 卡按钮功能
Posted
技术标签:
【中文标题】Kivymd 卡按钮功能【英文标题】:Kivymd card button functionality 【发布时间】:2020-08-22 11:03:38 【问题描述】:我使用 kivy、kivymd 和 python 制作了一个简单的应用程序。 md 卡中的 on_release 功能不起作用,下面是我的代码 sn-p。
from kivy.lang import Builder
from kivymd.app import MDApp
kv = '''
Screen:
MDCard:
size_hint: None, None
size: "280dp", "180dp"
pos_hint: "center_x": .5, "center_y": .5
ripple_behavior: True
on_release:print("worked")
'''
class TestCard(MDApp):
def build(self):
return Builder.load_string(kv)
TestCard().run()
【问题讨论】:
【参考方案1】:您必须小心您在 kv 字符串中使用的制表符。首先,您从 Screen 声明之前的选项卡开始。那是行不通的。然后,您必须在声明 MDCard 后设置选项卡以设置其属性。像这样对我有用:
from kivy.lang import Builder
from kivymd.app import MDApp
KV = '''
Screen:
MDCard:
size_hint: None, None
size: "280dp", "180dp"
pos_hint: "center_x": .5, "center_y": .5
ripple_behavior: True
on_release: print("worked")
'''
class TestCard(MDApp):
def build(self):
return Builder.load_string(KV)
TestCard().run()
【讨论】:
【参考方案2】:您的代码的问题是 python 语句在 .kv 文件中不起作用。另一个问题是缩进。因此,只需更改缩进并在您的 TestCard 类中创建一个方法,如下所示:
from kivy.lang import Builder
from kivymd.app import MDApp
kv = '''
Screen:
MDCard:
size_hint: None, None
size: "280dp", "180dp"
pos_hint: "center_x": .5, "center_y": .5
ripple_behavior: True
on_release: app.work()
'''
class TestCard(MDApp):
def build(self):
return Builder.load_string(kv)
def work(self):
print("worked")
TestCard().run()
【讨论】:
以上是关于Kivymd 卡按钮功能的主要内容,如果未能解决你的问题,请参考以下文章