Python Kivymd MDDataTable无法执行

Python Kivymd MDDataTable无法执行,python,kivy,kivymd,Python,Kivy,Kivymd,我尝试了这个关于MDDataTable的简单代码,但每次执行它时,它总是给我错误。最近我成功地运行了不同的KivyMD函数,但这个简单的表让我头疼 Python代码 from kivymd.app import MDApp from kivymd.uix.screen import Screen from kivymd.uix.datatables import MDDataTable from kivy.metrics import dp class Demo(MDApp): def

我尝试了这个关于MDDataTable的简单代码,但每次执行它时,它总是给我错误。最近我成功地运行了不同的KivyMD函数,但这个简单的表让我头疼

Python代码

from kivymd.app import MDApp
from kivymd.uix.screen import Screen
from kivymd.uix.datatables import MDDataTable
from kivy.metrics import dp

class Demo(MDApp):
    def build(self):
        screen  = Screen()
        table = MDDataTable(orientation = "lr-tb",
                            column_data = [
                                ("Food",dp(30)),
                                ("Calories", dp(30))
                            ])
        screen.add_widget(table)
        return screen
Demo().run()
错误

 Traceback (most recent call last):
   File "C:/Users/User/PycharmProjects/purbar/dataTabols.py", line 16, in <module>
     Demo().run()
   File "C:\Users\User\PycharmProjects\purbar\venv\lib\site-packages\kivy\app.py", line 949, in run
     self._run_prepare()
   File "C:\Users\User\PycharmProjects\purbar\venv\lib\site-packages\kivy\app.py", line 919, in _run_prepare
     root = self.build()
   File "C:/Users/User/PycharmProjects/purbar/dataTabols.py", line 9, in build
     table = MDDataTable(orientation = "lr-tb",
   File "C:\Users\User\PycharmProjects\purbar\venv\lib\site-packages\kivymd\uix\datatables.py", line 923, in __init__
     super().__init__(**kwargs)
   File "C:\Users\User\PycharmProjects\purbar\venv\lib\site-packages\kivymd\theming.py", line 907, in __init__
     super().__init__(**kwargs)
   File "C:\Users\User\PycharmProjects\purbar\venv\lib\site-packages\kivy\uix\modalview.py", line 187, in __init__
     super(ModalView, self).__init__(**kwargs)
   File "C:\Users\User\PycharmProjects\purbar\venv\lib\site-packages\kivy\uix\anchorlayout.py", line 68, in __init__
     super(AnchorLayout, self).__init__(**kwargs)
   File "C:\Users\User\PycharmProjects\purbar\venv\lib\site-packages\kivy\uix\layout.py", line 76, in __init__
     super(Layout, self).__init__(**kwargs)
   File "C:\Users\User\PycharmProjects\purbar\venv\lib\site-packages\kivy\uix\widget.py", line 350, in __init__
     super(Widget, self).__init__(**kwargs)
   File "kivy\_event.pyx", line 245, in kivy._event.EventDispatcher.__init__
 TypeError: object.__init__() takes exactly one argument (the instance to initialize)
回溯(最近一次呼叫最后一次):
文件“C:/Users/User/PycharmProjects/purbar/dataTabols.py”,第16行,在
Demo().run()
文件“C:\Users\User\PycharmProjects\purbar\venv\lib\site packages\kivy\app.py”,第949行,正在运行
self.\u run\u prepare()
文件“C:\Users\User\PycharmProjects\purbar\venv\lib\site packages\kivy\app.py”,第919行,在运行准备中
root=self.build()
文件“C:/Users/User/PycharmProjects/purbar/dataTabols.py”,第9行,内部版本
table=MDDataTable(orientation=“lr tb”,
文件“C:\Users\User\PycharmProjects\purbar\venv\lib\site packages\kivymd\uix\datatables.py”,第923行,在u init中__
超级()
文件“C:\Users\User\PycharmProjects\purbar\venv\lib\site packages\kivymd\theming.py”,第907行,在u init中__
超级()
文件“C:\Users\User\PycharmProjects\purbar\venv\lib\site packages\kivy\uix\modalview.py”,第187行,在u init中__
超级(莫达尔维,自我)。\uuuuu初始值(**kwargs)
文件“C:\Users\User\PycharmProjects\purbar\venv\lib\site packages\kivy\uix\anchorlayout.py”,第68行,在u init中__
超级(主播布局,自我)。\uuuuu初始值(**kwargs)
文件“C:\Users\User\PycharmProjects\purbar\venv\lib\site packages\kivy\uix\layout.py”,第76行,在uu init中__
超级(布局,自我)。\uuuuu初始化(**kwargs)
文件“C:\Users\User\PycharmProjects\purbar\venv\lib\site packages\kivy\uix\widget.py”,第350行,在u init中__
超级(小部件,自我)。\uuuuu初始化(**kwargs)
文件“kivy\\u event.pyx”,第245行,在kivy.\u event.EventDispatcher.\uu init中__
TypeError:object.\uuuu init\uuuuuuuu()只接受一个参数(要初始化的实例)

每当遇到错误时:

TypeError: object.__init__() takes exactly one argument
它告诉您,类
对象
\uuu init\uu()方法正在使用意外参数调用。对象
类是所有python类的基类(请参见)。在python中,当您创建某个类的新实例时,其
\uu init\uu()
方法将使用您提供的任何参数进行调用。普通的
\uuuuu init\uuuu()
将获取它识别的关键字参数,并将任何剩余的关键字参数传递给它的基类。这将继续,直到最后调用
对象的
\uuuuu init\uuuuuu()
类的
\uuuu init()
对象的
方法
不接受任何参数,因此在
对象
\uuuu init\uuu()
中存在的任何关键字参数都将抛出您看到的错误。如果您向
\uuu init\uuuu()提供关键字参数,则会发生这种情况
无法识别的方法。在您的情况下,无法识别的参数是
方向
MDDataTable
类无法将
方向
识别为关键字参数,因此它会一直传递到
对象
类,并引发错误


TLDR:只要在遇到错误时删除
orientation=“lr tb”

TypeError: object.__init__() takes exactly one argument
它告诉您,类
对象
\uuu init\uu()方法正在使用意外参数调用。对象
类是所有python类的基类(请参见)。在python中,当您创建某个类的新实例时,其
\uu init\uu()
方法将使用您提供的任何参数进行调用。普通的
\uuuuu init\uuuu()
将获取它识别的关键字参数,并将任何剩余的关键字参数传递给它的基类。这将继续,直到最后调用
对象的
\uuuuu init\uuuuuu()
类的
\uuuu init()
对象的
方法
不接受任何参数,因此在
对象
\uuuu init\uuu()
中存在的任何关键字参数都将抛出您看到的错误。如果您向
\uuu init\uuuu()提供关键字参数,则会发生这种情况
无法识别的方法。在您的情况下,无法识别的参数是
方向
MDDataTable
类无法将
方向
识别为关键字参数,因此它会一直传递到
对象
类,并引发错误


TLDR:只需删除
orientation=“lr tb”

我也遇到了同样的问题,并找到了以下链接:,我想这是您避免“垂直”错误消息的解决方案。
它对我不起作用,所以我从kivymd.uix.datatables.py中的TableRecycleGridLayout模板中删除了一对“方向:垂直”,它解决了这个问题。这可能是kivimd错误。

我也遇到了同样的问题,并找到了这个链接:,我想这是您避免“垂直”错误消息的解决方案。
它对我不起作用,所以我从kivymd.uix.datatables.py中的TableRecycleGridLayout的模板中删除了一对“orientation:vertical”,解决了这个问题。这可能是kivimd的错误。

我也遇到了同样的问题。删除
orientation='tb-lr'
会抛出一个
值错误(),但包含它会产生与您所经历的相同的
TypeError

到目前为止,我可以通过从源代码(即从)安装KivyMD来解决此问题,如下所示:


我也遇到了同样的问题。删除
orientation='tb-lr'
会抛出一个
ValueError
(),但包括它会产生与您所经历的
类型错误相同的
TypeError

到目前为止,我可以通过从源代码(即从)安装KivyMD来解决此问题,如下所示: