言窗 1.0
使用 yanxu-gui 1.0 构建具备窗口、布局、控件、事件、画布和原生 Bundle 的跨平台应用。
言窗(yanxu-gui)1.0.0 是稳定桌面 GUI 包。中文对象 API 通过原生 ABI v2 封装
eframe/egui 与 winit,支持 Windows、macOS、Linux Wayland/X11 的 x86-64 和 ARM64;
应用无需编写 Rust,也不会接触原生指针或框架类型。
创建项目
需要言序 1.1.12 和支持 GUI 模板的言包:
yanbao new 我的窗口 --gui
yanbao run --manifest-path 我的窗口言窗的 Git 标签保存源码和清单模板;六目标生成清单及原生库位于
1.0.0 Release 的
yanxu-gui-six-targets.tar.gz。进行离线或审计构建时,应展开该官方归档并通过
--gui-path提供完整包,不要把只有模板的 Git 标签误当成可执行六目标包:
yanbao new 我的窗口 --gui --gui-path /已验证/yanxu-gui运行时按锁文件的系统、架构、ABI、大小和 SHA-256 精确选择后端,不下载或猜测缺失动态库。
最小应用
引「包:言窗」为 界面;
定 应用 为 界面.应用(「任务清单」);
定 窗口 为 应用.窗口({「标题」:「任务清单」,「宽」:720,「高」:480});
定 布局 为 窗口.纵向布局({「间距」:12,「内边距」:16});
定 提示 为 布局.文字(「尚未保存」);
定 输入 为 布局.输入框({「占位」:「输入任务」});
定 保存 为 布局.按钮(「保存」);
法 保存任务(事件):空 则
提示.内容(「已保存:」 加 输入.取内容());
归 空;
终
法 关闭应用(事件):空 则
应用.退出();
归 空;
终
保存.点击(保存任务);
窗口.关闭时(关闭应用);
窗口.显示();
应用.运行();应用.运行阻塞当前线程直至退出。关闭布局会释放整个子树;关闭窗口会释放窗口、布局、
控件和回调;事件循环返回时清空模型。句柄绑定创建它的线程和事件循环,跨线程使用会
返回稳定错误。
布局、控件与事件
- 纵向、横向、网格、层叠、双向滚动布局,可递归嵌套。
- 文字、按钮、单/多行输入、复选、单选、下拉、滑块、进度、图片、列表、标签页、菜单和画布。
- 点击、变化、焦点、键盘、鼠标、滚轮、窗口、DPI、拖放、自定义事件和有界定时器。
- 中文与扩展 Unicode 字体回退,文字输入交给平台 IME。
- 高频鼠标、尺寸和重绘事件可能合并;回调只在创建 VM 的所有者线程运行。
权限
[权限]
图形界面 = true
剪贴板 = false
文件对话框 = false图形权限不隐式授予剪贴板或文件对话框。对话框只返回路径,不读取文件;应用仍需为后续 文件操作声明路径权限。言窗后端可凭图形权限装载,其他 ABI 扩展仍需单独授权。
错误与资源预算
试 则
窗口.标题(「新标题」);
救 所误 则
定 详情 为 界面.错误详情(所误);
若 (详情【「代码」】 等于 「GUI_RESOURCE_CLOSED」)则
言「窗口已经关闭」;
终
终程序判断GUI_*代码,不匹配消息,也不直接依赖底层NATIVE_V2来源。图片宽高各不超过
4,096,解码分配上限 96 MiB;单画布最多 16,384 条命令、估算 64 MiB。资源图、事件队列、
值树和回调均有硬上限。
Bundle 与正式制品
yanbao build --manifest-path 我的窗口 --release --bundleBundle 包含 standalone 运行时、YXB、当前目标原生库、资源、许可证和逐文件摘要。macOS
输出.app,Windows 输出 GUI 应用目录,Linux 输出 AppDir。项目签名、公证或商店上传
在最后一次未签名摘要验证之后进行。
官方 1.0.0 Release 归档为 28,404,376 字节,SHA-256:
2fddeb3db155f6811ea5a0aab2d7dbd567a62ab44da38db2a6b08cf43e32f3e4。六个制品均验证
ABI v2 导出、架构、大小和摘要;macOS 制品是临时签名,不是 Developer ID 签名。
已知限制
- 不支持 musl、WebAssembly、iOS、Android、32 位目标或运行时下载缺失制品。
- Linux GNU 正式制品需要 glibc 2.39。
- 非零布局
伸缩在 1.0 明确失败;图片只支持受限 PNG/JPEG。 - 渲染像素、字体、剪贴板和对话框外观不保证跨平台完全一致。
- 原生扩展与主进程同址,不提供进程级隔离。
完整 API、架构与安全文档见yanxulang/yanxu-gui。