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

如何为KivyMD的primary palette设置十六进制格式的自定义颜色

KivyMD设置自定义十六进制主调色板方案

KivyMD默认的primary_palette属性仅支持内置命名调色板,无法直接传入十六进制颜色值,可通过以下两种方式实现需求:

方案1:直接修改主色(最简方案)

如果只需要固定的主色,不需要用到不同亮度的主色变体,可直接给primary_color属性赋值十六进制颜色:

self.theme_cls.primary_color = "#171717"

方案2:自定义完整调色板(适配全场景)

如果需要KivyMD组件自动适配不同亮度的主色(比如按钮按下态、禁用态的颜色自动变化),可以先注册自定义调色板,再指定为primary_palette:

from kivymd.app import MDApp

class DemoApp(MDApp):
    def build(self):
        # 注册自定义调色板
        # 参数说明:自定义调色板名称、各亮度档位的颜色值、默认主色对应的档位
        self.theme_cls.set_custom_colors(
            "CustomDark",
            {
                "50": "#e1e1e1",
                "100": "#b4b4b4",
                "200": "#828282",
                "300": "#515151",
                "400": "#2c2c2c",
                "500": "#171717", # 你需要的核心主色
                "600": "#141414",
                "700": "#111111",
                "800": "#0d0d0d",
                "900": "#080808",
                "A100": "#d6d6d6",
                "A200": "#949494",
                "A400": "#474747",
                "A700": "#0a0a0a"
            },
            "500"
        )
        # 设置主调色板为自定义的调色板
        self.theme_cls.primary_palette = "CustomDark"

DemoApp().run()

如果不需要区分亮度,也可以把所有档位的颜色都设置为同一个十六进制值即可。

内容的提问来源于stack exchange,提问作者Ctrl7

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:45:04