configuration — 配置

读取和更新 Manifest 声明的配置值。

self.configuration 提供配置读写能力,用于读取和更新插件在 Manifest 中声明的配置项(需声明 configuration 权限)。

方法

方法说明
get(configuration_id, *, callback?)读取指定配置项
set(configuration_id, value, *, callback?)更新指定配置项
list(*, callback?)列出所有配置项
on_changed(handler, *, configuration_id?)订阅配置变更

get(configuration_id, *, callback?)

读取指定 ID 的配置值。

self.configuration.get("baud_rate", callback=lambda **cb: print(cb.get("value")))

参数:

  • configuration_id (str) — 配置项 ID
  • callback (callable, 可选) — 读取结果回调

set(configuration_id, value, *, callback?)

更新指定 ID 的配置值。

self.configuration.set("baud_rate", 115200)

参数:

  • configuration_id (str) — 配置项 ID
  • value (Any) — 新的配置值
  • callback (callable, 可选) — 更新结果回调

list(*, callback?)

列出当前插件声明的所有配置项。

self.configuration.list(callback=lambda **cb: print(cb.get("data")))

on_changed(handler, *, configuration_id?)

订阅配置变更事件,返回一个 Subscription(订阅于 configuration.changed 主题)。

sub = self.configuration.on_changed(
    self._on_config_changed,
    configuration_id="baud_rate",
)

def _on_config_changed(self, event):
    print(event.get("id"), event.get("value"))

参数:

  • handler (callable) — 变更处理器,接收事件字典
  • configuration_id (str, 可选) — 仅监听指定配置项;不传则监听所有配置项

处理器收到的事件字典形如 {id, value, pluginId, ...}。订阅对象支持 .dispose().disposed 属性(参见 events 文档)。

使用示例

class MyPlugin(UiPlugin):
    def on_start(self):
        self.configuration.get(
            "baud_rate",
            callback=lambda **cb: self._apply(cb.get("value")),
        )
        self.sub = self.configuration.on_changed(
            self._on_changed,
            configuration_id="baud_rate",
        )

    def on_dispose(self):
        self.sub.dispose()

    def _on_changed(self, event):
        self.message.info(f"配置已更新: {event.get('value')}")

On this page