1.9 KiB
1.9 KiB
bricks-for-python(pybricks)
Bricks 前端的服务器端 Python 打包模块:把常用弹窗/消息 widget 的 JSON 构造 封装成 Python 函数,注册进 ahserver 的 ServerEnv,供各模块 dspy/handler 直接返回 UI。
提供的函数(bricks_for_python/init.py)
| 函数 | widgettype | 用途 |
|---|---|---|
UiWindow(title, icon, content, cheight=10, cwidth=15) |
PopupWindow | 弹出内容窗口(movable、auto_open) |
UiConform(title, message, binds=[]) |
Conform | 确认对话框 |
UiError(title, message, timeout=5) |
Error | 右上角错误提示 |
UiMessage(title, message, timeout=5) |
Message | 右上角普通消息 |
load_pybricks() |
— | 把上述四个函数注册到 ServerEnv 全局 |
宿主集成
宿主应用 app/<name>.py 的 init() 里:
from bricks_for_python.init import load_pybricks
load_pybricks() # 注册 UiWindow/UiError/UiMessage/UiConform
之后任意 dspy/handler 可直接 return UiMessage(title='成功', message='...')。
与 bricks(前端 JS 框架)配套:本模块只产 JSON 声明,渲染由前端 bricks 完成。
安装
pip install . # build.sh 基础包清单成员,产线/Sage 宿主都装
已知问题(改代码前注意,init.py 全文仅 import ServerEnv)
UiConform当前调用即崩:binds:json.dump(...)把变量 binds(默认 [],不可哈希)当 dict 键 → TypeError;且json、entire_url均未导入。修复需补 import 并改为"binds": json.dumps(...)。UiWindow/UiConform里的entire_url(...)未导入:UiWindow 仅在 icon 传空时触发 NameError(传了 icon 则可用)。UiWindow的if kw: dic.update(kw)位于return之后,是死代码,kw 实际不生效。UiError/UiMessage无上述问题,可正常使用(现网主要用这两个)。