Python Kivymd MDDataTable无法执行
我尝试了这个关于MDDataTable的简单代码,但每次执行它时,它总是给我错误。最近我成功地运行了不同的KivyMD函数,但这个简单的表让我头疼 Python代码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
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来解决此问题,如下所示: