KivyMD使用MDToolbar产生错误:self.\u shadow=App.get\运行\ App()主题_cls.quadèu shad公司

2024-10-01 04:49:28 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我使用MDNavigationToolbar或MDToolbar小部件时,都会出现错误

message line 111, in _update_shadow
     self._shadow = App.get_running_app().theme_cls.quad_shadow

我已经阅读了很多关于这个主题的信息,并遵循以下示例:

Error: In _update_shadow self._shadow = App.get_running_app().theme_cls.quad_shadow

我完全按照步骤操作,它停止了崩溃,但我的应用程序只有一个空白屏幕,我看不到工具栏(即使在玩了颜色之后)

class LoginWindow(Screen):
    pass


class CreateAccountWindow(Screen):
    pass


class QrScannerWindow(Screen):
    pass


class WindowManager(ScreenManager):
    pass


kv = Builder.load_file("mykivy.kv")
sm = WindowManager()

screens = [LoginWindow(name="login"), CreateAccountWindow(name="create account"), QrScannerWindow(name="qr scanner")]
for screen in screens:
    sm.add_widget(screen)

sm.current = "qr scanner"

class MyApp(App):
    theme_cls = ThemeManager()

    def build(self):
        return sm

kv文件:


WindowManager:
    LoginWindow:
    CreateAccountWindow:
    QrScannerWindow:

<QrScannerWindow>:
    name: "qr scanner"

    NavigationLayout:
        MDNavigationDrawer:
            NavigationDrawerToolbar:


Tags: nameselfapppassthemescreenclasscls
1条回答
网友
1楼 · 发布于 2024-10-01 04:49:28

KivyMD处于alpha状态时,它可能有bug。KivyMD小部件期望在已经创建的初始化应用程序对象上使用它。你知道吗

请在构建函数中创建所有小部件:

    def build(self):
        kv = Builder.load_file("mykivy.kv")
        sm = WindowManager()

        screens = [LoginWindow(name="login"), CreateAccountWindow(name="create account"), QrScannerWindow(name="qr scanner")]
        for screen in screens:
            sm.add_widget(screen)

        sm.current = "qr scanner"
        return sm

相关问题 更多 >