You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KivyMD开发:如何从Builder加载的kv代码中调用自定义函数

问题根源

kv 语言中self指代当前控件本身(此处即你定义的MDRectangleFlatButton按钮控件),而show_data是定义在应用类PrototypeChikis中的方法,不属于按钮控件本身,直接调用必然报错。

正确修改方法

你只需要修改helpers文件中loginButton字符串的on_press绑定逻辑即可,kv提供了内置关键字app指代当前运行的应用实例,直接用它调用方法就行:

loginButton = """
MDRectangleFlatButton:
    text: 'Log In'
    pos_hint: {'center_x':0.5, 'center_y':0.4}
    on_press: app.show_data(self)   
"""

这里的self作为参数传入show_data方法,刚好匹配你方法定义里的obj形参,修改后点击按钮就能正常打印输入框的内容。

补充kv常用指代规则

你可以记一下kv里三个常用的作用域指代关键字,后续开发会经常用到:

  • self:指代当前定义的控件本身
  • app:指代当前运行的应用实例,即你继承MDApp实现的类的实例
  • root:指代当前kv规则对应的根控件

内容的提问来源于stack exchange,提问作者Rulo998

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:48:04