我在项目中使用ScreenManager。当我在Main.py中返回“ Home”类时,它可以正常工作,但如果返回“ ScreenManager”,它将得到AttributeError。该如何修复。
- hosts: all
become: root
tasks:
-name: add user Natasha
user:
- name: natasha
- comment:"Natasha Ping"
- uid: 1027
- group: ping
-name: add user John
user:
- name: john
- comment:"John Pong"
- uid: 1028
- group: ping
当我返回Home()时有效,但我返回SM则不可行
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()
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)
答案 0 :(得分:0)
如果不查看kv文件和py文件,则无话可说。 但是,只是检查
self.ids.add_field.add_widget(newListItem)
此行会将newListItem
添加到.kv file
中定义的布局中。
此布局的id:
也必须为add_field
例如(kv文件):
<Home>:
GridLayout:
id:add_field
cols:2