我不了解kivymd中的错误消息

时间:2019-12-13 22:01:34

标签: python kivy kivy-language

我正在尝试通过以下代码使用kivymd:

    from kivy.app import App
from kivymd.theming import ThemeManager
from kivymd.navigationdrawer import MDNavigationDrawer
from kivymd.navigationdrawer import NavigationLayout
from kivymd.card import MDSeparator


class MyApp(App):
    theme_cls=ThemeManager()

if __name__ == "__main__":
    m = MyApp()
    m.run()

但我收到此错误:

from kivymd.navigationdrawer import MDNavigationDrawer
 ModuleNotFoundError: No module named 'kivymd.navigationdrawer'
>>> 

这是我的kv文件:

#:import NavigationLayout kivymd.navigationdrawer.NavigationLayout
#:import MDSeparator kivymd.card

NavigationLayout:
    MDNavigationDrawer:
<Button>:
    text: "Hey"

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

解释-请阅读: 您正在使用为KivyMD的较早版本制作的一些代码。在新版本中,大多数窗口小部件已移至kivymd.uix文件夹中,因此您可以将#:import NavigationLayout kivymd.navigationdrawer.NavigationLayout更改为#:import NavigationLayout kivymd.uix.navigationdrawer.NavigationLayout(其他所有窗口小部件均与此类似。但是,所有KivyMD小部件会在只要您在kv文件中包含from kivymd.app import MDApp,就可以main.py个文件。(在Python中,您仍然需要编写from kivymd.uix.navigationdrawer import MDNavigationDrawer,或者需要访问Python中的类)。

解决方案:

main.py

from kivymd.app import MDApp

class MyApp(MDApp):
    pass

if __name__ == "__main__":
    m = MyApp()
    m.run()

my.kv

NavigationLayout:
    MDNavigationDrawer:
    Button:
        text: "Hey"