如何为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
相关产品推荐
相关产品推荐

