You need to enable JavaScript to run this app. KivyMD中添加MDDataTable时出现TypeError报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

KivyMD中添加MDDataTable时出现TypeError报错如何解决

报错排查与解决步骤

你碰到的TypeError: object.init() takes exactly one argument报错,结合你复用2020年旧帖子代码的场景,核心原因集中在版本不匹配、导入缺失、参数不兼容三类,按优先级逐个排查即可解决:

一、优先排查依赖版本不兼容问题

  • 你参考的旧帖子对应的kivy、kivymd版本是2020年的老版本,现在pip默认安装的新版库对MDDataTable的底层RecycleView实现做了大幅修改,跨版本直接复用旧代码,非常容易出现父类初始化参数不匹配的问题。
  • 先在终端执行命令查看当前安装的版本:pip list | grep -E "kivy|kivymd"
    • 如果查到kivy版本>=2.2.0,搭配的kivymd版本<1.1.1,肯定会触发这个报错:老版本kivymd内部调用布局初始化时传了已被新版kivy废弃的参数,直接导致__init__方法收到多余参数抛出异常。
  • 修复操作:
    1. 卸载现有不匹配的版本:pip uninstall kivy kivymd -y
    2. 安装官方验证过的兼容组合:先执行pip install "kivy[base]>=2.1.0",再执行pip install kivymd==1.2.0,这个版本组合下MDDataTable的所有初始化参数和底层实现完全匹配,不会触发布局初始化冲突。

二、检查导入语句是否完整

  • 很多初学者写代码时只导入用到的MDDataTable,漏了依赖的基础组件导入,也会在类初始化时触发父类引用错误,进而抛出参数不匹配的异常。
  • 你的代码文件头部必须补充完整导入:
    from kivymd.app import MDApp
    from kivymd.uix.datatables import MDDataTable
    from kivy.metrics import dp
    from kivy.uix.screen import Screen
    
    注意不要从旧路径kivymd.uix.card或者老版本路径导入MDDataTable,路径错误会加载到内部依赖缺失的旧类,直接触发初始化报错。

三、核对传参格式与取值兼容性

  • 你代码里写的orientation="lr-tb"参数,在旧版MDDataTable中是有效配置,但在1.1.0以上的新版本中,这个参数会被透传给底层的RecycleLayout,而新版RecycleLayout对orientation的取值规则做了调整,传值不匹配就会触发初始化异常。
  • 再核对row_data的格式要求:MDDataTable要求row_data的每一个元素,必须是和column_data长度完全一致的元组。你当前写的row_data=[("Burger", "300"), ("Oats", "50")]结构本身是符合要求的,注意不要在值里嵌套复杂结构,避免初始化时递归传参出错。
  • 调整后可直接运行的build方法参考:
    def build(self):
        screen = Screen()
        table = MDDataTable(
            pos_hint={'center_x': 0.5, 'center_y': 0.5},
            size_hint=(0.9, 0.6),
            check=False,
            column_data=[
                ("Food", dp(30)),
                ("Calories", dp(30))
            ],
            row_data=[
                ("Burger", "300"),
                ("Oats", "50")
            ]
        )
        screen.add_widget(table)
        return screen
    
    这里去掉了易引发版本冲突的orientation参数,补充了新版MDDataTable默认要求的check参数,避免初始化时缺省参数不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 10:36:01