【问题标题】:NavigationLayout Kivy err0rNavigationLayout Kivy err0r
【发布时间】:2021-04-30 01:49:15
【问题描述】:

我决定更新 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()

请帮忙

这是因为该网站不允许您提问 这是因为该网站不允许您提问 这是因为该网站不允许您提问 这是因为该网站不允许您提问

【问题讨论】:

    标签: python python-3.x kivy kivy-language kivymd


    【解决方案1】:

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

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

    • MDNavigationLayoutMDNavigationDrawer
    • NavigationLayoutNavigationDrawer

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

        Root:
        
            MDNavigationLayout:
        
                ScreenManager:
        
                    ...
                    ...
        
                MDNavigationDrawer:
        
                    UserContentNavigationDrawer:
        

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

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

        有关更多信息,请参阅此 github 页面:

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

        不知道为什么官网没改,这次更新快一年了!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-09-28
          • 2022-12-21
          • 2023-02-23
          • 2021-06-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多