0
0 Комментариев

Как обращаться к тому или иному объекту в нашем приложении?
Пример:

#python
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
 
 
class Test2(App):
    def build(self):
        return MyWidget()
 
class MyWidget(ScreenManager):
    pass
class Scr1(Screen):
    pass
class Scr2(Screen):
    pass
 
if __name__=='__main__':
    Test2().run()

А также его kv-шник:

#kv
<MyWidget>:
    Scr1:
        name: '1'
        Button:
            text: 'This is screen ONE'
            on_press: root.current = '2'
    Scr2:
 
<Scr2>:
    name:'2'
    Button:
        text: 'This is screen TWO'
        on_press: root.current = '1'

В этом примере 2 скрина. Один включён в MyWidget, другой вынесен отдельно. Нажимая на кнопу у Scr1, мы исполняем команду root.current = ‘2’, т.к. root здесь MyWidget, мы меняем ему текущий экран и всё ок. Однако, делая тоже самое с Scr2, у нас ничего не выходит, т.к. root здесь будет Scr2.

Как обратиться к MyWidget из Scr2 здесь?


Добавить комментарий