生态桌面应用

完整示例

一个包含菜单、列表、分割面板、标签页、文本和画布的可运行言界应用。

以下源码与文档仓库examples/desktop/综合控件展示.yx完全一致。CI 使用言序 1.1.9 与 1.1.20 两套工具链解析言界 1.0,在真实 Linux 窗口环境执行类型检查、Release YXB 构建和 自动退出冒烟。

引「包:言界」为 界面;

定 应用 为 界面.应用(「言界综合控件展示」);

定 窗口 为 应用.窗口({「标题」:「言界综合控件展示」,「宽」:960,「高」:700,「最小宽」:720,「最小高」:520});

定 主列 为 窗口.列({「内边距」:18,「间距」:10});

定 菜单行 为 主列.行({「间距」:8});

令 菜单选择次数 为 0;

法 记录菜单选择(所事件) 则
    置 菜单选择次数 为 (菜单选择次数 加 1);
终

定 主菜单 为 菜单行.菜单(【{「标题」:「文件」,「快捷键」:「⌘N」,「子菜单」:【{「标题」:「新建」},{「标题」:「打开」,「快捷键」:「⌘O」}】},{「标题」:「编辑」,「子菜单」:【{「标题」:「撤销」,「快捷键」:「⌘Z」},{「标题」:「重做」,「快捷键」:「⇧⌘Z」}】},{「标题」:「退出」}】);

主菜单.监听(「选择」,记录菜单选择);

菜单行.文字(「保留模式控件全部由言序实现」);

定 分割 为 主列.分割面板({「方向」:「横向」,「比例」:0.3,「伸展」:1});

定 左侧 为 分割.列({「间距」:8,「内边距」:10});

左侧.文字(「项目」);

左侧.列表(【「欢迎」,「布局」,「事件」,「文本」,「主题」,「绘制」】).伸展(1);

定 页签 为 分割.标签页(【】);

定 编辑页 为 页签.页(「编辑」);

编辑页.列({「间距」:8,「内边距」:12}).多行输入框({「内容」:「中文 IME、选择、复制、撤销和重做\n均由言序文本模型处理。」,「伸展」:1});

定 预览页 为 页签.页(「预览」);

定 画布 为 预览页.画布({});

画布.命令({「类型」:「圆角矩形」,「矩形」:【380,180,320,160】,「半径」:18,「颜色」:【44,102,220,255】});

画布.命令({「类型」:「文字」,「位置」:【420,230】,「最大宽」:250,「字号」:28,「行高」:36,「颜色」:【255,255,255,255】,「文本」:「言界综合示例」});

定 底行 为 主列.行({「间距」:8,「主对齐」:「终」});

底行.按钮(「取消」);

底行.按钮(「保存」);

法 关闭处理(所事件) 则
    应用.退出();
终

窗口.关闭时(关闭处理);

窗口.显示();

应用.运行();

项目清单使用快速开始中的言界v1.0.0依赖和四项权限。 先运行yanbao 装,再用yanbao 查检查;开发桌面运行应用,发布时执行 yanbao 构 --release --bundle。窗口边缘、键盘导航、中文 IME、DPI、屏幕阅读器和关闭 路径仍应在目标桌面会话完成上线冒烟。