Я хочу переключать экраны в файле python с помощью kivy.Я хочу, чтобы это было через функцию обратного вызова GoXXT .Как это определить?Когда я запускаю код, он показывает mainwidgetApp, но кнопка не работает.Вот что я попробовал: изменить sm на global (вероятно, не очень хорошая идея).изменив файл kivy для mainwidget на: on_press: root.manager.current = 'settings'
вот мой код:
Builder.load_string("""
<MenuScreen>:
mainwidgetApp
<SettingsScreen>:
BoxLayout:
Button:
text: 'My settings button'
Button:
text: 'Back to menu'
on_press: root.manager.current = 'settings'
""")
class mainwidget(Widget):
def __init__(self, **kwargs):
btnnext = Button(text='go to next', pos=(200, 400))
btnnext.bind(on_press=self.gonext)
self.add_widget(btnnext)
# def savecard(self, btn_instance):
def gonext(self ,btn_inst):
ScreenManager().current = "SettingsScreen"
# Create the screen manager
sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(SettingsScreen(name='settings'))
class mainwidgetApp(App):
def build(self):
Window.clearcolor = (0,0,0.3,1)
return mainwidget()
if __name__ == '__main__':
mainwidgetApp().run()
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()