Проблемы с использованием screenmanager в киви

#python #python-3.x #user-interface #kivy

Вопрос:

Я хочу подключиться к экранам, но я не знаю, что я делаю не так. Я перепробовал много вещей, но, похоже, ничего не работает, он продолжает показывать одну и ту же ошибку, я хочу подключить mainpagescreen к Nav_pageScreen, но он продолжает показывать ту же ошибку

 from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivymd.app import MDApp


Window.size = (1200, 800)

KV ='''
ScreenManager: 
    MainpageScreen:
    Nav_pageScreen:
<MainpageScreen>:
        name:"Mainpage"
    
        
        
                  
        
        MDRectangleFlatIconButton:
                icon: "code-braces"
                text: "Credits"
                theme_text_color: "Custom"
                text_color: 120/255, 81/255, 169/255, 1
                line_color: 120/255, 81/255, 169/255, 1
                icon_color: 120/255, 81/255, 169/255, 1
                pos_hint:{"center_x": .5, "center_y": .1} 
        MDRectangleFlatButton:
                text: "Start!"
                id_bg_color: 0,0,0,0
                text_color: 0, 0, 0, 0
                pos_hint:{"center_x": .5, "center_y": .2} 
                size_hint:(0.4,0.1)
                on_press:root.manager.current:"Nav_page"
                
            
        
<Nav_pageScreen>:
        name: "Nav_page"
        
        MDRectangleFlatIconButton:
            icon: "code-braces"
            text: "Credits"
            theme_text_color: "Custom"
            text_color: 120/255, 81/255, 169/255, 1
            line_color: 120/255, 81/255, 169/255, 1
            icon_color: 120/255, 81/255, 169/255, 1
            pos_hint:{"center_x": .5, "center_y": .1} 
            on_press:root.manager.current:"Mainpage"
            
'''

class MainpageScreen(Screen):
    pass


class Nav_pageScreen(Screen):
    pass


sm = ScreenManager()
sm.add_widget(MainpageScreen(name="Mainpage"))
sm.add_widget(Nav_pageScreen(name="Nav_page"))

class MainApp(MDApp):
    def build(self):
        kv = Builder.load_string(KV)
        return kv

if __name__ == '__main__':
    MainApp().run()
 
 enter code File "/Users/Neil/PycharmProjects/Kivy_start/kivy_venv/kivy/main2.py", line 76, in <module>
 MainApp().run()
 

Файл «/Users/Neil/PycharmProjects/Kivy_start/venv/lib/python3.9/site-packages/kivy/app.py», строка 949, в поле выполнить
самостоятельно._run_prepare()
Файл «/Users/Neil/PycharmProjects/Kivy_start/venv/lib/python3.9/site-packages/kivy/app.py», строка 919, в run_prepare
root = self.build()
Файл «/Users/Neil/PycharmProjects/Kivy_start/kivy_venv/kivy/main2.py», строка 72, в сборке
kv = Builder.load_string(KV)
Файл «/Users/Neil/PycharmProjects/Kivy_start/venv/lib/python3.9/site-packages/kivy/lang/builder.py», строка 373, в
синтаксическом анализаторе load_string = Синтаксический анализатор(содержимое=строка, имя файла=fn)
Файл «/Users/Neil/PycharmProjects/Kivy_start/venv/lib/python3.9/site-packages/kivy/lang/parser.py», строка 402, init самостоятельный анализ(содержимое) Файл «/Users/Neil/PycharmProjects/Kivy_start/venv/lib/python3.9/site-packages/kivy/lang/parser.py», строка 511, в объектах синтаксического анализа, remaining_lines = self.parse_level(0, строки) Файл «/Users/Neil/PycharmProjects/Kivy_start/venv/lib/python3.9/site-packages/kivy/lang/parser.py», строка 674, на уровне синтаксического анализа, если current_property[:3] == «включено
«:
Ошибка типа: объект «Нетип» не может быть подписан

Процесс завершен с кодом выхода

Блок-цитата

Комментарии:

1. Я думаю, что твоя вмятина в твоей KV -это плохо. Вы начали с отступа в 4 пробела, но после <MainpageScreen>: того, как вы изменили отступ на больший. Это не сработает. Вы должны соответствовать отступу.

2. @джон Андерсон, но решит ли это мою ошибку?

3. Дай ему попробовать. Посмотрим, так ли это.

4. О, спасибо, что это сработало!