kwgt Globals 全局变量 跨元素跨预设共享数据
什么是全局变量
全局变量(Globals)是 kwgt 中一个预设内所有元素都可以读取和写入的"共享状态"。类比:
- 元素自己的属性 = 局部变量(只有自己知道)
- Globals = 全局变量(整个预设都能访问)
典型用法
- 统一颜色主题:在 Root 层设
$gv(theme_color, '#3388FF')$→ 整个预设的颜色都读$gv(theme_color)$→ 改一处就全站变色 - 条件触发:某个按钮点击时设
$gv(show_sidebar, 1)$→ 其他元素根据这个值决定显示 / 隐藏 - 动画计时:在一个元素里递增时间计数 → 其他元素读这个计数做联动动画
怎么创建 Globals
在属性面板的 Globals 标签页:
- 点 + 添加一个新变量
- 起名(英文,别用中文和空格)
- 设初始值(数字、字符串、颜色都可以)
比如创建一个叫 mycolor 的变量,初始值是 #3388FF。
怎么读 Globals
在任意属性里写:
$gv(mycolor)$
kwgt 会把它解析成 #3388FF。如果后面你在别处改变了 mycolor 的值,所有读它的地方会自动变。
怎么写 Globals(赋值)
在函数里:
$gv(mycolor, '#FF0000')$
第二个参数是新值。赋值操作通常放在 Touch 动作里("点击这个按钮时把 theme_color 改成红色")。
跨 App 共享
kwgt 的 Globals 和 KLWP 的 Globals 可以互相访问。这意味着:
- KLWP 动态壁纸里的 Globals 可以被桌面上的 kwgt 小组件读取
- kwgt 小组件里的 Globals 可以被 KLWP 壁纸读取
- 前提是两者用的是同一个 App 实例(非华为 / AOSP 版)
Tasker 也能读写
如果你装了 Tasker,可以通过 Kustom 的 Tasker 插件从外部设置 / 读取 Globals。这是自动化发烧友的进阶玩法。