__Python/Kivy中的初始化参数
我试图调用一个init方法,它是函数中的父函数。我可能在做一些明显愚蠢的事情,但我想不出来。当我有以下代码时,我得到一个错误:__Python/Kivy中的初始化参数,python,kivy,Python,Kivy,我试图调用一个init方法,它是函数中的父函数。我可能在做一些明显愚蠢的事情,但我想不出来。当我有以下代码时,我得到一个错误: from kivy.app import App from kivy.uix.widget import Widget from kivy.uix.button import Button from kivy.properties import NumericProperty, ReferenceListProperty, ObjectProperty, ListPro
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.properties import NumericProperty, ReferenceListProperty, ObjectProperty, ListProperty
from kivy.clock import Clock
from kivy.graphics import Color
class FieldCommand(Widget):
def __init__(self, **kwargs):
super(FieldCommand, self).__init__(**kwargs)
self.myBoard = Board(col=2, rows=2)
for c in range(4):
self.add_widget(Button(text = c))
class Board(Widget):
def __init__(self, **kwargs):
super(Board, self).__init__(**kwargs)
class FieldCommandApp(App):
def build(self):
return FieldCommand()
if __name__ == '__main__':
FieldCommandApp().run()
具体来说,我的错误是:
File "/Users/.../PycharmProjects/FieldCommand/venv/lib/python3.7/site-packages/kivy/uix/widget.py", line 350, in __init__
super(Widget, self).__init__(**kwargs)
File "kivy/_event.pyx", line 243, in kivy._event.EventDispatcher.__init__
TypeError: object.__init__() takes exactly one argument (the instance to initialize
)
我是这样做的:
为什么我的应用程序出现错误?您对
self.myBoard=Board(col=2,rows=2)
的调用包括col
的kwargs和rows
传递给小部件的
,后者不接受这些kwargs。因此,解决方法是在板
类中提取那些kwargs
。只需在板
类中添加属性
即可:
class Board(Widget):
# default values for `row` and `cols`
col = NumericProperty(1)
rows = NumericProperty(1)
def __init__(self, **kwargs):
super(Board, self).__init__(**kwargs)
您对self.myBoard=Board(col=2,rows=2)
的调用包括kwargs
的col
和行
,这些行被传递到小部件\uuuu init\uuu()
,后者不接受这些kwargs。因此,解决方法是在板
类中提取那些kwargs
。只需在板
类中添加属性
即可:
class Board(Widget):
# default values for `row` and `cols`
col = NumericProperty(1)
rows = NumericProperty(1)
def __init__(self, **kwargs):
super(Board, self).__init__(**kwargs)
谢谢-我上面的代码有几个问题-我只是觉得昨晚我已经过了疲劳期。但是你的回答肯定让我走上了正确的道路。谢谢-我上面的代码有几个问题-我只是觉得昨晚我已经过了疲劳期。但你的回答肯定让我走上了正确的道路。