tabs — 标签页 API

为插件贡献的视图创建标签页放置。

self.tabs 为当前插件贡献的视图创建标签页放置。view_id 必须是插件贡献的视图 ID。

此 API 需要 tab.createtab.manage 权限。请求的 view_id 必须是插件在 plugin.toml 中贡献的视图之一。

方法

create_view(view_id, *, title=None, expansion=False, callback=None)

创建视图的标签页实例。

参数类型说明
view_idstr插件贡献的视图 ID
titleOptional[str]标签页标题,不传时使用视图默认标题
expansionbool是否以展开模式打开,默认 False
callbackOptional[Callable]回调,接收 callback(instance=TabViewInstance)callback(error=...)

回调成功时携带 instance,失败时携带 error

self.tabs.create_view(
    "my_view",
    title="我的视图",
    callback=lambda **cb: print(cb),
)

TabViewInstance

宿主机分配的一个插件视图实例,为不可变 dataclass:

字段说明
plugin_id插件 ID
session_id会话 ID
view_id视图 ID
instance_id实例 ID

使用示例

class MyPlugin(UiPlugin):
    def open_view(self):
        self.tabs.create_view(
            view_id="dashboard",
            title="仪表盘",
            expansion=True,
            callback=self._on_tab_created,
        )

    def _on_tab_created(self, **result):
        instance = result.get("instance")
        error = result.get("error")
        if error is not None:
            print(f"打开失败: {error}")
            return
        print(f"标签页已打开: {instance.view_id} / {instance.instance_id}")

On this page