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

Kivy的MDDataTable使用add_row触发KeyError报错求助

问题原因

你出现KeyError: 'add_row'的核心原因是:add_row是MDDataTable的普通实例方法,不是可以通过bind绑定的事件。Kivy的bind方法仅支持绑定on_开头的事件对象,你把普通方法名作为事件名传递给bind,自然找不到对应的事件键值,所以抛出KeyError。

修复步骤
  1. 直接删除代码中报错的绑定语句:
self.data_tables.bind(add_row=self.add_row)
  1. 调整新增行的调用逻辑:需要新增行的时候,直接调用MDDataTable实例自带的add_row方法即可,不需要额外绑定,也不需要自定义同名方法包裹(除非有额外自定义逻辑)。示例调用方式如下:
# 拿到新数据后直接调用表格的add_row方法
new_row = ("3", "Mushroom", "3", "Bad")
self.data_tables.add_row(new_row)
补充注意事项
  • 传入add_row的行数据长度必须和你定义的column_data的列数完全一致,否则会触发参数不匹配报错
  • 如果需要保留自定义的add_row方法做前置逻辑处理,修改成如下形式即可:
def add_row(self, row_data):
    # 可在这里添加自定义逻辑,比如数据校验、日志打印等
    print(f"新增行数据:{row_data}")
    # 调用表格自带方法完成行插入
    self.data_tables.add_row(row_data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:54:03