Невозможно добавить новый экран через менеджер экрана в приложении kivy - PullRequest
0 голосов
/ 08 марта 2020

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

raise FactoryException('Unknown class <%s>' % name)
 kivy.factory.FactoryException: Unknown class <ConnectScreen>

Теперь мой firstapp.kv выглядит так:

...
#:import AboutScreen screens
#:import ContactScreen  screens

NavigationLayout:
    id: nav_layout
    MDNavigationDrawer:
        id: nav_drawer
        NavigationDrawerToolbar:
            title: 'Menu'
        NavigationDrawerIconButton:
            icon: 'arrow-right-drop-circle'
            text: 'About Us'
            on_release: app.root.ids.scr_mngr.current = 'about'
        NavigationDrawerIconButton:
            icon: 'arrow-right-drop-circle'
            text: 'Connect Us'
            on_release: app.root.ids.scr_mngr.current = 'connect'

    BoxLayout:
        orientation: 'vertical'
        Toolbar:
            id: toolbar
            title: 'Main Dashboard'
            md_bg_color: app.theme_cls.primary_color
            background_palette: 'Primary'
            background_hue: '500'
            left_action_items: [['menu', lambda x: app.root.toggle_nav_drawer()]]
        ScreenManager:
            id: scr_mngr
            AboutScreen:
            ConnectScreen:

Теперь я также обновил строку Builder.load.string моего connect.py , как показано ниже:

#!/usr/bin/env python
# -*- coding: utf-8 -*-


from kivy.lang import Builder
from kivy.uix.screenmanager import Screen

Builder.load.string("""
<AboutScreen>
    name: 'connect'
    ScrollView:
        id: scroll
        do_scroll_x: False
        BoxLayout:
            orientation: 'vertical'
            size_hint_y: None
            height: dp(800)
            padding: dp(15)
            spacing: dp(15)
            Image:
                source: './img/connect.jpeg'
                allow_stretch: True
""")


class ConnectScreen(Screen):
    pass

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 09 марта 2020

Обнаружена проблема.

Мой __ init __. Py (в папке с экранами) не был обновлен.

После того, как я обновил свой __ init __. Py это сработало.

from .contact import ContactScreen
...