无法通过Kivy应用程序中的屏幕管理器添加新屏幕

时间:2020-03-08 13:47:19

标签: python kivy kivy-language

我正在尝试添加新的连接屏幕。我正在使用屏幕管理器。 我还更新了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 :(得分:0)

发现了问题。

我的 __ init __。py (在screens文件夹中)未更新。

更新我的 __ init __。py 后,它开始工作。

from .contact import ContactScreen