theme — 主题贡献
注册自定义主题配色方案。
self.theme 提供主题贡献能力。Ui、Service、Data 插件均可用(贡献写入通常需要 data.write 权限,读取需要 data.read)。
方法
contribute(name, data, callback?)
注册静态主题。
self.theme.contribute("my-theme", {
"color.primary": "#1976D2",
"color.onPrimary": "#FFFFFF",
"color.surface": "#FFFFFF",
"color.onSurface": "#1C1B1F",
"dark.color.primary": "#90CAF9",
"dark.color.onPrimary": "#003258",
"dark.color.surface": "#1C1B1F",
"dark.color.onSurface": "#E6E1E5",
})参数:
name(str) — 主题名称(唯一标识符)data(dict) — 主题数据字典
register_runtime(name, data, callback?)
注册运行时主题(可动态更新)。
self.theme.register_runtime("dynamic-theme", {
"color.primary": "#FF5722",
})revoke(name, callback?)
撤销已注册的主题。
self.theme.revoke("my-theme")参数:
name(str) — 主题名称
get(name, callback?)
查询已注册的主题数据。
self.theme.get("my-theme",
lambda **cb: print(cb)
)list(callback?)
列出所有已注册主题。
self.theme.list(
lambda **cb: print(cb)
)主题数据键
主题数据使用点分隔的键名。浅色模式不带前缀,深色模式使用 dark. 前缀。
| 键 | 说明 |
|---|---|
color.primary | 主色调 |
color.onPrimary | 主色调上的文字/图标颜色 |
color.surface | 表面颜色 |
color.onSurface | 表面上的文字/图标颜色 |
dark.color.primary | 深色模式主色调 |
dark.color.onPrimary | 深色模式主色调上的颜色 |
dark.color.surface | 深色模式表面颜色 |
dark.color.onSurface | 深色模式表面上的颜色 |
使用示例
class NordTheme(DataPlugin):
def on_contribute(self):
self.theme.contribute("nord", {
"color.primary": "#5E81AC",
"color.onPrimary": "#ECEFF4",
"color.surface": "#ECEFF4",
"color.onSurface": "#2E3440",
"dark.color.primary": "#88C0D0",
"dark.color.onPrimary": "#2E3440",
"dark.color.surface": "#2E3440",
"dark.color.onSurface": "#ECEFF4",
})
plugin = NordTheme()
plugin.run_once()