Как загрузить MDScreen из другого kv файла?

from kivy.lang import Builder
    from kivy.properties import ObjectProperty
    from kivymd.uix.screen import MDScreen
    from kivymd.app import MDApp
    
    
    class Calc(MDScreen):
        screen_manager = ObjectProperty()
        nav_drawer = ObjectProperty()
    
        def set_screen(self, key):
            self.nav_drawer.set_state("close")
            self.screen_manager.current = key
    
    
    class Example(MDApp):
        def build(self):
            self.theme_cls.primary_palette = "Orange"
            self.theme_cls.theme_style = "Dark"
            return Builder.load_file('Editor.kv')
    
    
    if __name__ == '__main__':
        Example().run()

Строки после id: screen_manager

<Calc>:
    MDBoxLayout:
        orientation: 'vertical'
        spacing: 20

        MDRectangleFlatIconButton:
            text_color: [0.7,0.7,0.7,1]
            icon_color: [0.7,0.7,0.7,1]
            line_color: 0, 0, 0, 0
            font_size: '24sp'
            icon_size: '30sp'
            icon: "calculator"
            text: 'Calculator'
            on_release: root.set_screen(self.text)

        MDRectangleFlatIconButton:
            text_color: [0.7,0.7,0.7,1]
            icon_color: [0.7,0.7,0.7,1]
            line_color: 0, 0, 0, 0
            font_size: '24sp'
            icon_size: '30sp'
            icon: "circle-off-outline"
            text: 'Circle'
            on_release: root.set_screen(self.text)

        MDRectangleFlatIconButton:
            text_color: [0.7,0.7,0.7,1]
            icon_color: [0.7,0.7,0.7,1]
            line_color: 0, 0, 0, 0
            font_size: '24sp'
            icon_size: '30sp'
            icon: "triangle-outline"
            text: 'Triangle'
            on_release: root.set_screen(self.text)

        MDRectangleFlatIconButton:
            text_color: [0.7,0.7,0.7,1]
            icon_color: [0.7,0.7,0.7,1]
            line_color: 0, 0, 0, 0
            font_size: '24sp'
            icon_size: '30sp'
            icon: "rectangle-outline"
            text: 'Rectangle'
            on_release: root.set_screen(self.text)

MDScreen:

    MDTopAppBar:
        pos_hint: {"top": 1}
        elevation: 4
        title: "MDNavigationDrawer"
        left_action_items: [["menu", lambda x: nav_drawer.set_state("open")]]

    MDNavigationLayout:
        MDScreenManager:
            id: screen_manager

            MDScreen:
                name: 'Calculator'
                MDLabel:
                    text: 'Calculator'
            MDScreen:
                name: 'Circle'
                MDLabel:
                    text: 'Circle'
            MDScreen:
                name: 'Triangle'
                MDLabel:
                    text: 'Triangle'
            MDScreen:
                name: 'Rectangle'
                MDLabel:
                    text: 'Rectangle'

        MDNavigationDrawer:
            id: nav_drawer
            radius: (0, 16, 16, 0)

            Calc:
                screen_manager: screen_manager
                nav_drawer: nav_drawer

Чтобы с каждым отдельным скрином можно было работать в разных файлах.


Ответы (0 шт):