【发布时间】:2020-08-06 19:17:48
【问题描述】:
我只是在学习kivymd的一些风格和设计,但是由于某些原因,当代码运行时 kv = Builder.load_file(MainLayout.kv),它会引发异常(
kivy.uix.screenmanager.ScreenManagerException:ScreenManager 只接受屏幕小部件。
)。
我就是无法让它运行,也无法继续运行。无论我做出什么改变,它都会引发这个异常。
仅供参考,这是 Main.py 的代码
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
from kivymd.app import MDApp
from kivy.uix.boxlayout import BoxLayout
from kivymd.uix.list import MDList
from kivymd.theming import ThemableBehavior
from kivy.core.window import Window
class Login(Screen):
pass
class Settings(Screen):
pass
sm = ScreenManager()
sm.add_widget(Login(name='login'))
sm.add_widget(Settings(name='settings'))
sm.current = "login"
class DemoApp(MDApp):
class ContentNavigationDrawer(BoxLayout):
pass
class DrawerList(ThemableBehavior, MDList):
pass
def build(self):
self.theme_cls.primary_palette = "Teal"
Window.size = (412, 732)
#The Error Occurs when the KV file is loaded
kv = Builder.load_file("MainLayout.kv")
return kv
if __name__ == '__main__':
DemoApp().run()
这是 Kivy 文件,在登录文件中我只有 ()
#: include Login.kv
#: include Settings.kv.
NavigationLayout:
id:nav_layout
ScreenManager:
Screen:
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: "Kivy Demo App"
Widget:
ScreenManager:
id: screen_manager
Login:
id: login1
name: "login"
Settings:
id: settings1
name:"settings"
MDNavigationDrawer:
id: nav_drawer
ContentNavigationDrawer:
orientation: 'vertical'
padding: "8dp"
spacing: "8dp"
MDLabel:
text: 'Username'
MDLabel:
text: 'Captions'
【问题讨论】:
-
提供一个最小的例子。尝试从这个中删除尽可能多的内容。
-
嘿!感谢您的建议...这足够还是我应该删除更多? Main.py 仅供参考,因为我是 kivy 的新手,我不确定那里是否也有问题......