【问题标题】:Initializing KivyMD App object before loading root widget problem在加载根小部件问题之前初始化 KivyMD App 对象
【发布时间】:2021-07-22 00:18:11
【问题描述】:

我正在修改 KivyMD 中的多个屏幕,但我遇到了这个问题:

ValueError: KivyMD: App object must be initialized before loading root widget

问题是它只有在我尝试使用 KivyMD 小部件时才会弹出,如下面的代码所示。但是,如果我将那些 KivyMD 小部件更改为原始 kivy 库附带的小部件(例如用 Label 替换 MDLabel),它似乎可以毫无问题地执行。

显然我似乎遗漏了一些东西,但我不知道是什么。所以我会感谢你的任何帮助。

感谢您的关注

python 文件:

import kivy
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen

class MainScreen(Screen):
    pass

class DateScreen(Screen):
    pass

class ActivityScreen(Screen):
    pass

class Manager(ScreenManager):
    pass

kv = Builder.load_file("layout2.kv")

class MainApp(MDApp):
    def build(self):
        self.theme_cls.theme_style = "Dark"
        return kv

if __name__ == "__main__":
    MainApp().run()

kivy 文件:

Manager:
    MainScreen:
    DateScreen:
    ActivityScreen:

<MainScreen>:
    name: "main_screen"
    RelativeLayout:
        MDLabel:
            title: "Testing"

【问题讨论】:

    标签: python kivy kivymd


    【解决方案1】:

    只需移动线:

    kv = Builder.load_file("layout2.kv")
    

    build() 方法中,像这样:

    class MainApp(MDApp):
        def build(self):
            self.theme_cls.theme_style = "Dark"
            kv = Builder.load_file("layout2.kv")
            return kv
    

    【讨论】:

      猜你喜欢
      • 2021-03-03
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多