#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. О, спасибо, что это сработало!