NavigationLayout 绝望 err0r

NavigationLayout Kivy err0r

我决定更新kivy。以前没有这个错误,现在:

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

代码:

from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.core.window import Window
Window.size = (600,550)
KV = '''
Screen:
    NavigationLayout:
        MDNavigationDrawer:
            id: draver
            BoxLayout:
                orientation: 'vertical'
                ScrollView:
                    MDList:
                        BoxLayout:
                            id: box 
                        OneLineIconListItem:
                            on_press: app.star()
                            text: 'Избранное'
                            IconLeftWidget:
                                icon: 'star'
                        OneLineIconListItem:
                            text: 'Настройки'
                            IconLeftWidget:
                                icon: 'settings'    
'''
class Test(MDApp):
    def build(self):
        return Builder.load_string(KV)
    
Test().run()

请帮忙pp

写这篇文章是因为网站不允许您提问 这是写的,因为该网站不允许您提问 这是写的,因为该网站不允许您提问 这是因为该站点不允许您提问

运行 您发布的确切程序。没有错误。 虽然也没有导航栏,那只是代码不完整。使用官方 KivyMD 网站获取正确的格式。

https://kivymd.readthedocs.io/en/latest/components/navigation-drawer/

尝试创建一个新的虚拟环境并运行它在那里。

您必须为这些小部件选择 kivykivymdNavigationLayout MDNavigationDrawer

实际上,您正在融化两个库,他们不喜欢它。使用:

  • MDNavigationLayoutMDNavigationDrawer
  • NavigationLayoutNavigationDrawer

使用 MDNavigationDrawer 已更改! 您现在应该使用此标记结构:

Root:

    MDNavigationLayout:

        ScreenManager:

            ...
            ...

        MDNavigationDrawer:

            UserContentNavigationDrawer:

MDNavigationDrawer 是一个空的 MDCard class,您可以在其中添加自己的内容。

即总而言之,将 NavigationLayout 更改为 MDNavigationLayout

有关详细信息,请参阅此 github 页面:

https://github.com/kivymd/KivyMD/wiki/Components-Navigation-Drawer#using-mdnavigationdrawer-has-changed

不知官网怎么还没改,这更新快一年了!