【发布时间】:2020-06-23 12:33:26
【问题描述】:
我正在尝试在屏幕上的特定位置放置一个问题横幅(作为 MDGridLayout),以便通过我的 FireBase 加载问题。
我得到错误:
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/GOAT/main.py", line 124, in <module>
NavDrawerAndScreenManagerApp().run()
File "C:\Users\user\PycharmProjects\GOAT\venv\lib\site-packages\kivy\app.py", line 949, in run
self._run_prepare()
File "C:\Users\user\PycharmProjects\GOAT\venv\lib\site-packages\kivy\app.py", line 944, in _run_prepare
self.dispatch('on_start')
File "kivy\_event.pyx", line 709, in kivy._event.EventDispatcher.dispatch
File "C:/Users/user/PycharmProjects/GOAT/main.py", line 103, in on_start
Q = QuestionBanner(side_i_1=question['side_i_1'], side_n_1=question['side_n_1'])
File "C:\Users\user\PycharmProjects\GOAT\questionsbanner.py", line 10, in __init__
super(QuestionBanner, self).__init__(**kwargs)
File "C:\Users\user\PycharmProjects\GOAT\venv\lib\site-packages\kivy\uix\gridlayout.py", line 256, in __init__
super(GridLayout, self).__init__(**kwargs)
File "C:\Users\user\PycharmProjects\GOAT\venv\lib\site-packages\kivy\uix\layout.py", line 76, in __init__
super(Layout, self).__init__(**kwargs)
File "C:\Users\user\PycharmProjects\GOAT\venv\lib\site-packages\kivymd\uix\behaviors\backgroundcolorbehavior.py", line 150, in __init__
super().__init__(**kwargs)
File "C:\Users\user\PycharmProjects\GOAT\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)
这是我的 main.py 相关代码(我认为最后两行是错误的来源,就好像我将它们注释掉 (#) 一样,应用程序运行):
my_questions_grid = self.root.ids['my_questions_grid']
questions = data['questions']
# iterate through the firebase dictionaries
for question_num, question in questions.items():
# populate Home screen
Q = QuestionBanner(side_i_1=question['side_i_1'], side_n_1=question['side_n_1'])
my_questions_grid.add_widget(Q)
这是我的 QuestionsBanner file.py 相关代码:
def __init__(self, **kwargs):
super(QuestionBanner, self).__init__(**kwargs)
# Up - question text
# Left side
left = MDFloatLayout()
left_image = Image(source='photos/' + kwargs['side_i_1'], size_hint=(1, 0.8), pos_hint={'top': 1, 'left': 1})
left_label = MDLabel(text=kwargs['side_n_1'], size_hint=(1, 0.2), pos_hint={'top': 0.2, 'left': 1})
left.add_widget(left_image)
left.add_widget(left_label)
self.add_widget(left)
这里是相关的main.kv代码:
MDTabs:
pos_hint: {'top': .5, 'left': 1}
size_hint: 1, .4
id: android_tabs
on_tab_switch: app.on_tab_switch(*args)
Tab:
text: "My Questions"
MDGridLayout:
id: my_questions_grid
感谢任何能对此有所了解的人!
【问题讨论】:
-
如果你不显示,我们怎么知道
super(QuestionBanner, self)是什么?此外,我们甚至不确定是哪一行导致了错误,因为您没有在问题中包含完整的错误回溯。 -
@ThierryLathuille 嘿,谢谢,我添加了完整的回溯-您还需要查看什么?
标签: python firebase kivy kivy-language