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

KivyMD绑定left_action_items点击事件时报弱引用对象不存在错误

问题原因

报错是两个问题共同导致的:

  • KV代码中给left_action_items绑定回调时,你写的是lambda x : app.menu,仅返回了函数对象本身,没有执行函数调用。KivyMD处理工具栏按钮回调时会对传入的可调用对象做弱引用持有,没有正确触发执行的函数对象会被提前回收,就会触发弱引用失效的报错。
  • Python代码里menu方法末尾多了无效的**strong text**语法片段,干扰了函数对象的正常引用。

修复方案

  • 将KV里的lambda表达式修改为实际执行函数调用的写法:lambda x: app.menu()
  • 删除Python代码中menu方法末尾多余的无效内容

修复后完整可运行代码

from kivymd.app import MDApp
from kivy.lang import Builder

KV = '''
Screen:
    NavigationLayout:
        ScreenManager:
            Screen:
                BoxLayout:
                    orientation:"vertical"
                    MDToolbar:
                        title:"Tool"
                        left_action_items : [["menu", lambda x : app.menu()]]
                    MDLabel:
                        text: "App"
'''

class GoodApp(MDApp):
    def build(self):
        builder = Builder.load_string(KV)
        return builder
    def menu(self):
        print("menu")

GoodApp().run()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:36:04