python - KivyMD 使用 MDToolbar 产生错误:self._shadow = App.get_running_app().theme_cls.quad_shadow
问题描述
每当我使用 MDNavigationToolbar 或 MDToolbar 小部件时,我都会收到错误消息
message line 111, in _update_shadow
self._shadow = App.get_running_app().theme_cls.quad_shadow
我已经阅读了很多关于这个主题的信息,并遵循了这个例子:
错误:在 _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:
解决方案
虽然KivyMD处于alpha状态,但它可能存在错误。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
推荐阅读
- python - 无法在 python 中嵌入 youtube-dl
- python - 有人可以向我解释为什么我的代码有效吗?(异步蟒蛇)
- twilio - Twilio TwiML 设置参与者标签
- elasticsearch - 在 nginx 访问日志中捕获响应正文的 grok 模式
- hook - SugarCRM 识别记录是从 after_save 钩子创建或更新的
- google-sheets - 对从 finviz 提取的值进行平均时出错
- javascript - PHP和Javascript JWA之间的不同数字签名结果
- python - Python 美丽的汤 etsy 刮刀没有收集所有物品
- python - “2 * np.random.rand(100,1)”的含义
- laravel - 在 cpanel 的子文件夹中部署 laravel 项目