You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么KivyMD中调整theme_cls配置后界面颜色无法正常修改?

问题原因

你的主题配置不生效是代码中的几处基础错误导致的:

  • 方法名拼写错误:KivyMD的App类入口方法是小写的build,你写成了大写的Build,该方法不会被框架主动调用,你写的主题配置代码完全没有执行
  • 返回值错误:build方法需要返回你定义的根布局实例,你返回了数字0,框架无法加载你写的kv布局,自然不会应用对应样式
  • kv文件属性拼写错误:md_bc_color是无效属性,正确的按钮背景色属性是md_bg_color
  • 加载规则注意:需要保证kv文件命名符合Kivy自动加载规则,要么将kv文件命名为my.kv(对应MyApp类去掉App后缀的小写形式)和py文件放在同一目录,要么手动调用Builder.load_file加载kv文件

修正后的Python代码

from kivymd.app import MDApp
from kivymd.uix.boxlayout import MDBoxLayout


class Ma(MDBoxLayout):
    pass

class MyApp(MDApp):
    def build(self):
        self.theme_cls.primary_palette = "Amber"
        self.theme_cls.theme_style = "Dark"
        # 返回根布局实例
        return Ma()

MyApp().run()

修正后的kv代码(保存为my.kv,和py文件同目录)

<Ma>:
    MDRaisedButton:
        text: "Hello World"
        md_bg_color: app.theme_cls.primary_light
        pos_hint: {"center_x": 0.5, "center_y": 0.6}
    MDRectangleFlatButton:
        text: "Hello World"
        md_bg_color: app.theme_cls.primary_dark
        pos_hint: {"center_x": 0.5, "center_y": 0.4}

内容的提问来源于stack exchange,提问作者Andrés Rodriguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:36:03