![](/img/trans.png)
[英]screen manager (AttributeError: 'super' object has no attribute '__getattr__')
[英]Screen manager AttributeError: 'super' object has no attribute '__getattr__'
我在項目中使用ScreenManager。 當我在Main.py中返回“ Home”類時,它可以正常工作,但是如果返回“ ScreenManager”,它將得到AttributeError。如何修復它。
from kivy.app import App
from kivy.lang.builder import Builder
from Components.Home.HomeScreen import Home,EachTask
from Components.SM.SM import SM
Builder.load_file("Components/SM/SM.kv")
Builder.load_file("Components/Home/HomeScreen.kv")
class Main(App):
def build(self):
return SM()
if __name__ == "__main__":
Main().run()
當我返回Home()時有效,但我返回SM則無效
class Home(Screen):
def __init__(self,**kwargs):
super(Home,self).__init__(**kwargs)
EachTask.Remove_widget = self.remove_widget
MyPopup.Remove_widget = self.remove_widget_pop
EachTask.Do_Popup_Task = self.do_popup_task
for row in database:
if (row[3]) == True:
newListItem = EachTask(rgba=[0, .7, .3, 1],
text= row[0] + " time: " + row[1],
id=row[2])
self.ids.add_field.add_widget(newListItem)
else:
newListItem = EachTask(text=row[0] + " time: " + row[1],
id=row[2])
self.ids.add_field.add_widget(newListItem)
self.ids.add_field.add_widget(newListItem)
File "kivy\properties.pyx", line 863, in
kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'
如果不查看kv文件和py文件,沒有什么可說的。 但是,只是檢查
self.ids.add_field.add_widget(newListItem)
這行代碼會將newListItem
添加到.kv file
定義的Layout中。 此布局的id:
也需要為add_field
例如(kv文件):
<Home>:
GridLayout:
id:add_field
cols:2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.