生态桌面应用

言窗 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 Releaseyanxu-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 --bundle

Bundle 包含 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