kivymd AttributeError:“MDNavigationDrawer”对象没有属性“toggle_state”

kzt*_*ztd 4 python-3.x kivymd

示例代码似乎有点过时,例如我必须将“NavigationLayout”替换为“MDNavigationLayout”。

我使用的是从github下载的最新的kivymd

这是我发现的最简单的示例,但这里的示例代码有同样的问题:

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window



Window.size = (300, 500)

navigation_helper = """
Screen:
    MDNavigationLayout:
        ScreenManager:
            Screen:
                BoxLayout:
                    orientation: 'vertical'
                    MDToolbar:
                        title: "Navigation Drawer"
                        elevation: 10
                        left_action_items: [['menu', lambda x: nav_drawer.toggle_nav_drawer()]]
                    Widget:
        MDNavigationDrawer:
            id: nav_drawer
"""


class DemoApp(MDApp):

    def build(self):
        screen = Builder.load_string(navigation_helper)
        return screen


DemoApp().run()
Run Code Online (Sandbox Code Playgroud)

kzt*_*ztd 9

替换

#left_action_items: [['menu', lambda x: nav_drawer.toggle_nav_drawer()]]
Run Code Online (Sandbox Code Playgroud)

left_action_items: [['menu', lambda x: nav_drawer.set_state('toggle')]]
Run Code Online (Sandbox Code Playgroud)

似乎有效