tabs — 标签页 API
为插件贡献的视图创建标签页放置。
self.tabs 为当前插件贡献的视图创建标签页放置。view_id 必须是插件贡献的视图 ID。
此 API 需要 tab.create 或 tab.manage 权限。请求的 view_id 必须是插件在 plugin.toml 中贡献的视图之一。
方法
create_view(view_id, *, title=None, expansion=False, callback=None)
创建视图的标签页实例。
| 参数 | 类型 | 说明 |
|---|---|---|
view_id | str | 插件贡献的视图 ID |
title | Optional[str] | 标签页标题,不传时使用视图默认标题 |
expansion | bool | 是否以展开模式打开,默认 False |
callback | Optional[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}")