首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kivymd MDDataTable未能执行

Kivymd MDDataTable未能执行
EN

Stack Overflow用户
提问于 2021-01-02 09:05:48
回答 3查看 581关注 0票数 1

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

Python代码

代码语言:javascript
复制
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()

误差

代码语言:javascript
复制
 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)
EN

回答 3

Stack Overflow用户

发布于 2021-01-02 14:42:09

每当您遇到错误时:

代码语言:javascript
复制
TypeError: object.__init__() takes exactly one argument

它告诉您,类objectobject方法是用意外参数调用的。object类是所有python类的基类(参见文档)。在python中,当您创建某个类的新实例时,将使用您提供的任何参数调用它的__init__()方法。普通的__init__()将获取它识别的关键字参数,并将剩余的关键字参数传递给它的基类。这将一直持续到__init__()类的object类最终被调用。用于__init__()object方法不带参数,因此任何保留到object__init__()的关键字参数都会抛出您正在看到的错误。如果向无法识别的__init__()方法提供关键字参数,则会发生这种情况。在您的例子中,未被识别的参数是orientationMDDataTable类不将orientation识别为关键字参数,因此它会一直传递到object类,并引发错误。

只需删除orientation = "lr-tb"即可。

票数 0
EN

Stack Overflow用户

发布于 2021-02-07 00:47:22

我也遇到了同样的问题,并找到了这个链接:无法找到TableRecycleGridLayout来修复Kivy代码,这是(我猜)您的解决方案,以避免“垂直”错误消息。它对我不起作用,所以我从TableRecycleGridLayout的kivymd.uix.datatables.py模板中删除了一对“方位:垂直”,从而解决了这个问题。这可能是杀虫。

票数 0
EN

Stack Overflow用户

发布于 2021-03-24 01:20:56

我也有同样的问题。删除orientation='tb-lr'会抛出一个ValueError (请看这里),但包括它会给出您所经历的相同的TypeError

到目前为止,我能够通过从源代码(即从KivyMD )安装https://github.com/kivymd/KivyMD来解决这个问题,如下所示:

代码语言:javascript
复制
git clone https://github.com/kivymd/KivyMD.git --depth 1
cd KivyMD
pip install .
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65537473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档