YStudio Y++

Documentation

开发文档

从语法与窗体,到支持库与 YSS 样式——按主题阅读即可上手 Y++。

快速入门 语言基础 下载

入门与语法

工程结构、窗口、类型与多窗口基础。也可先看 语言基础。

Y++ 语言基础Y++ 语言基础(语言与工程):本文是 Y++ 语言的规范速览。以本文与各支持库/控件文档的签名表为准,禁止虚构 API。 想直接对照着写出可运行窗口,见 最小窗口程序。 工程结构工程结构(语言与工程):新建「窗口项目」或「DLL 项目」后,YStudio 会在所选位置创建与项目同名的目录。本文说明默认文件布局与常见扩展。 窗口 XML 参考窗口 XML 参考(语言与工程):Y++ 窗体布局保存在 XML 中。写针对具体控件的 YSS 前,请先读取对应 XML(或整理出控件名称与 typeId 清单)。 窗口布局Y++ 窗口布局(语言与工程):设计器里把控件摆整齐,窗口一放大仍能跟着伸:用 停靠、水平/垂直布局 和 弹簧。YSS 只改外观,不改坐标;不要给布局或弹簧写 layout { … }。 多窗口设计Y++ 多窗口设计(语言与工程):新建多个窗口;每个窗口下写代码的方式和主窗口完全一样。 本窗控件可以省略窗名;要动别的窗口,才写 窗口名.…。 YSS v1(Y++ Style Sheet)YSS v1(Y++ Style Sheet)(语言与工程):写针对具体控件的 YSS 前,请先读窗体 XML 获取控件 名称 与 typeId,见 窗口 XML 参考。 自定义类型(`.yt`)Y++ 自定义类型(`.yt`)(语言与工程):自定义类型是值语义结构体(拷贝整份数据),与扩展句柄类(HTTP类 / 绘制类 等)不同。 自定义类(`.ypp`)Y++ 自定义类(`.ypp`)(语言与工程):自定义类是值语义对象(栈上构造,赋值拷贝),与 .yt 结构体、扩展句柄类(HTTP类 等)都不同。 DLL / 系统 API(`.yp`)Y++ DLL / 系统 API(`.yp`)(语言与工程):在工程中声明 Windows / DLL 导出函数,供 .yc 用别名调用。结构体仍放 .yt。 Y++ 指针 / DLL 边界对照手册Y++ 指针 / DLL 边界对照手册(语言与工程):本文整理 整数指针、文本指针、字节集指针 以及相关 DLL / WinAPI 边界在 Y++ 中的全部处理方式:已支持、半支持、不支持,以及推荐写法。 第三方 DLL 插件对接指南第三方 DLL 插件对接指南(语言与工程):本文说明:如何在 Y++ 中加载并调用任意第三方 DLL(图像、自动化、硬件、加密等插件),以及 C / 厂商文档里常见的参数类型在 Y++ 中有没有对应类型、没有时用哪些支持库命令转换。 DLL 工程(用 Y++ 编写并导出 `.dll`)DLL 工程(用 Y++ 编写并导出 `.dll`)(语言与工程):第一版为纯导出库:无窗口、默认代码视图。打开工程不会进设计画布。 静态模块工程(.ys)静态模块工程(.ys)(语言与工程):模块工程用 Y++ 编写可复用函数,编译产物为加密的 .ys 静态模块包,可被窗口工程或 DLL 工程静态链接调用。 最小窗口程序Y++ 最小窗口程序(语言与工程):从零写出一个能编译运行的窗口工程:先弄清文件与控件名,再按签名写事件。更全的语法见 语言基础;目录布局见 工程结构。 常见任务写法Y++ 常见任务写法(语言与工程):按任务抄完整可运行片段;签名细节以各专题文档为准。入门先看 最小窗口程序、语言基础。

基础支持库

IDE「支持库 → 基础支持库」扁平命令:文本、数值、文件、对话框、系统与加密等(非类)。

文本操作(基础支持库)Y++ 文本操作(基础支持库)(基础支持库):1. 扁平命令:取文本长度("你好"),无对象前缀。 2. 文本位置多数从 1(取文本中间 / 寻找文本 / 取字符 / 截取文本 / 文本插入)。 3. 寻找文本 未找到返回 0(不是 -1)。 4. 文本分割 结果数组下标从 0;取文本分段 的段号从 1。 数值运算(基础支持库)Y++ 数值运算(基础支持库)(基础支持库):1. 扁平命令:绝对值(-3),无对象前缀。 2. 参数类型多为 通用(整数/小数均可),返回以签名为准。 3. 除零类运算(余数 / 整商 / 整余 / 倒数)除数为 0 时通常返回 0。 4. 三角函数默认 角度制(方式=1);要弧度传 方式=2。 位运算(基础支持库)Y++ 位运算(基础支持库)(基础支持库):1. 扁平命令:位与(a, b),无对象前缀。 2. 操作对象为整数二进制位;返回新整数,一般不改原变量(需自行赋值)。 3. 取位 / 置位 / 翻转位 的位索引越界时,取位 返回 0;写位请先保证索引合法。 4. 算术运算见 数值运算。 数组操作(基础支持库)Y++ 数组操作(基础支持库)(基础支持库):1. 扁平命令:数组长度(列表),无对象前缀。 2. 一维数组下标从 0;文本分割 等得到的数组同样从 0。 3. 数组查找 未找到返回 -1(不要和 寻找文本 的 0 混淆)。 4. 数组添加 在末尾追加;数组插入 在指定下标插入(其后元素后移)。 字节集操作(基础支持库)Y++ 字节集操作(基础支持库)(基础支持库):1. 扁平命令:字节集长度(数据),无对象前缀。 2. 下标 / 起始索引从 0(与数组一致);取值范围 0~255。 3. 字节集查找 / 字节集查找字节集 未找到返回 -1。 4. 读文件为字节集也可用 到字节集(路径),见 类型转换。 5. 字符集换… 类型转换Y++ 类型转换(基础支持库):1. 扁平命令:到整数("12"),无对象前缀。 2. 到整数 / 到小数 等自文本解析失败时可能报错,不要假设静默为 0(到字节 文本失败按 0 除外)。 3. 到小数 与 到双浮点 等价;变量类型「小数」「双浮点」底层相同。 4. 到字节集:优先按文件路径读取;非有效… 文件与目录操作(基础支持库)Y++ 文件与目录操作(基础支持库)(基础支持库):1. 扁平命令:读文件("a.txt"),无对象前缀。 2. 读文件 返回文本;二进制请用 读入文件/读字节集 类命令(见签名表)或写出/读入字节集。 3. 写文件 默认 写模式(覆盖);追加用第 4 参 追加模式,或 追加文件 / 写出文件(...,… 目录操作(基础支持库)Y++ 目录操作(基础支持库)(基础支持库):1. 扁平命令;与「文件操作」中的创建/删除/枚举等配合使用。 2. 失败多为逻辑假或整数 -1 / 空文本;无统一「取错误」时以返回值判断。 3. 重命名目录 的「新名称」是目录名(不含路径),不是完整目标路径。 4. 取特定目录 类型非法或失败 → 空文本。 对话框(基础支持库)Y++ 对话框(基础支持库)(基础支持库):1. 扁平命令:信息框/询问框/输入框/文件与目录选择等。 2. 阻塞 UI,直至用户关闭对话框。 剪贴板(基础支持库)Y++ 剪贴板(基础支持库)(基础支持库):1. 扁平命令;读写前可用 剪贴板有文本 / 有图片 / 有文件 探测格式。 2. 取剪贴板图片 返回临时文件路径(默认 PNG),无图返回空文本。 3. 取剪贴板文件列表 对应资源管理器「复制文件」;返回数组(下标从 0)。 4. 监听相关命令成对使用:开始… 注册表(基础支持库)Y++ 注册表(基础支持库)(基础支持库):1. 扁平命令;根键如「当前用户」「本地机器」。 2. 读写失败以返回值判断;注意权限与路径拼写。 磁盘(基础支持库)Y++ 磁盘(基础支持库)(基础支持库):1. 扁平命令;容量类返回值单位以签名说明为准(常见为字节)。 2. 盘符参数格式以实现为准(如 "C:" / "C")。 3. 移动设备插拔后列表可能变化,勿缓存过久。 4. 失败时容量类命令可能返回 0 或 -1,以说明为准。 配置文件 INI(基础支持库)Y++ 配置文件 INI(基础支持库)(基础支持库):1. 扁平命令读写 .ini 节/键;节名、键名区分大小写与否以实现为准。 2. 读不到键时通常返回默认值参数(若签名提供)或空文本。 3. 写配置会创建不存在的文件/节;注意路径权限。 4. 与 ini-support 扩展文档可能互补;本页覆盖基… 系统操作(基础支持库)Y++ 系统操作(基础支持库)(基础支持库):1. 扁平命令:关机/重启/环境变量/打开网址或路径等。 2. 涉及关机、重启、注销的命令请谨慎;可选倒计时参数以签名为准。 3. 方法调用须带括号。 日期时间(基础支持库)Y++ 日期时间(基础支持库)(基础支持库):1. 扁平命令;与「日期时间对象」支持库(datetime-obj)不同——本页无对象方法链。 2. 格式化串以命令说明为准(常见 yyyy-MM-dd HH:mm:ss 风格)。 3. 时间差/时间戳单位(秒/毫秒)务必看签名,勿混用。 4. 本地时区与 … 进程操作(基础支持库)Y++ 进程操作(基础支持库)(基础支持库):1. 扁平命令;结束/提权类操作需相应权限,失败返回假。 2. 运行/执行 类:注意工作目录、参数引用与等待策略(异步/同步)。 3. 进程列表项结构以返回数组元素类型为准(常见为文本或专用结构)。 4. 管理员相关:是否管理员 / 以管理员重启 等会影响整… 字典操作(基础支持库)Y++ 字典操作(基础支持库)(基础支持库):1. 扁平命令;键值对容器(非类)。键必须为文本。 2. 也可用 通用 x = {} 创建;命令形如 字典置 / 创建字典。 3. 键不存在时取值行为以各命令说明为准。 加载层 / 加载动画(基础支持库)Y++ 加载层 / 加载动画(基础支持库)(基础支持库):1. 扁平命令;在窗口上显示等待遮罩与动画(类似 Web Loading)。 2. 分类名在面板中为「加载层」。 3. 加载动画默认约 3 秒自动关闭;长任务请设 时长=0,结束后调用 关闭加载动画。 4. 再次调用 加载动画 会刷新样式与倒计时。 性能计时(基础支持库)Y++ 性能计时(基础支持库)(基础支持库):1. 扁平命令;用于测量代码耗时(高精度计时器)。 2. 先打点,再读取间隔;单位以返回说明为准(毫秒/微秒)。 3. 勿在计时区间内打信息框等阻塞 UI,否则测到的是等待时间。 窗口操作(基础支持库)Y++ 窗口操作(基础支持库)(基础支持库):1. 扁平命令;句柄多为整数(HWND)。 2. 查找窗口依赖标题/类名,标题变化会导致找不到(返回 0)。 3. 发送消息/置焦点等可能受 UIPI 与权限限制。 4. 与窗体 XML / 设计器控件 API 不同——本页偏系统级窗口。 DLL支持(基础支持库)Y++ DLL支持(基础支持库)(基础支持库):1. 扁平命令;地址一律用 长整数 / 整数 传递,没有「指针类型」关键字。 2. WinAPI 的 int(32 位出参)用 DLL整数指针32 + DLL读整数指针32,不要用 DLL整数指针(那是 64 位变量址)。 3. DLL文本指针W/A 返回… 指针操作(基础支持库)Y++ 指针操作(基础支持库)(基础支持库):1. 扁平命令;用于取址、读写任意内存、偏移。日常 WinAPI 优先走 .yp / DLL支持,本库偏底层。 2. 地址用 长整数;误用可导致崩溃,请确认指针有效且长度足够。 3. 取文本指针地址(文本变量) 不是 LPCWSTR;DLL 宽串请用 DLL… YSS 命令(基础支持库)Y++ YSS 命令(基础支持库)(基础支持库):1. 扁平命令;属性名必须是英文(见 YSS)。 2. 默认启动会自动加载 exe 旁 {窗体名}.yss;子目录主题 / 换肤才显式 加载YSS。 3. :/img/a.png 相对 exe 根目录,与 .yss 是否在子目录无关。 4. 按名选择器用… 加密解密(基础支持库)Y++ 加密解密(基础支持库)(基础支持库):1. 扁平命令:AES加密(...),无对象前缀。 2. AES 与 ZIP / SQLite 整库加密同源(PBKDF2-SHA1 + AES-256-CTR + HMAC-SHA1),容器魔数文本 YPLAES01(不是 WinZip)。 3. AES … 子程序指针 / 回调(基础支持库)Y++ 子程序指针 / 回调(基础支持库)(基础支持库):1. 把用户函数交给热键、线程、DLL、监听等 API。 2. 取址:&函数名(必须带 &,不要加括号)。 3. 签名必须与接收方约定一致;默认回调为无参、无返回。 4. 回调内避免长时间阻塞 UI。 5. 可选回调:子程序指针须在形参最后,并写… 系统常量(基础支持库)Y++ 系统常量(基础支持库)(基础支持库):这些是可直接写在代码里的 常量(整数),不是命令。用于文件编码、写模式、时间格式、键码、对话框按钮等参数。

扩展支持库

IDE 中独立的扁平「*支持库」节点(ZIP、热键、界面、编码、图片、键鼠等),不是类。

ZIP 支持库Y++ ZIP 支持库(扩展支持库):1. 扁平命令,统一前缀 ZIP。 2. 路径支持中文;包内路径用正斜杠 /。 3. 密码非空默认 AES-256(加密方式=2);亦可用 ZipCrypto(=1)。 4. ZIP压缩到ZIP 第 2 参 ZIP 路径可省略(源,, 递归, 密码)。 热键支持库Y++ 热键支持库(扩展支持库):1. 扁平命令;注册后全局有效(窗口不在前台也可触发)。 2. 修饰键标志:Alt=1,Ctrl=2,Shift=4,Win=8,可相加(如 Ctrl+Shift=6)。 3. 键码为虚拟键码整数(如 A=65,F1=112)。 4. 回调须为无参子程序,建议 &函数名。 界面支持库Y++ 界面支持库(扩展支持库):1. 扁平命令;用设计器组件名称(文本)操作控件。 2. 组件名须与窗口 XML「名称」一致。 3. 置组件可见:1=显示,0=隐藏(兼容真/假)。 4. 消息条贴窗顶/底,与浮动 Toast「成功通知」不同。 5. 时长 -1 表示使用默认/不自动关(以实现为准);0… 系统支持库(系统_)Y++ 系统支持库(系统_)(扩展支持库):1. 扁平命令,多数前缀 系统;与「基础支持库 → 系统操作」互补。 2. 电源类(关机/重启/注销/锁屏/休眠/睡眠)影响整机,部分需管理员。 3. 开机启动项写入需相应权限。 4. 系统尝试单实例 / 互斥体用于禁止多开。 5. 强制关机/重启会导致未保存… XML支持库Y++ XML支持库(扩展支持库):1. 扁平命令;创建/解析/读文件失败返回句柄 0,查 XML取错误()。 2. 用完必须 XML释放(句柄)。 3. 路径用 / 分隔;可写根标签;同名兄弟用 [索引](从 0 起);空路径=根。 4. 大文件用 XML读文件 / XML写文件(UTF-8 二进制)… CSV支持库Y++ CSV支持库(扩展支持库):1. 扁平命令;行/列索引从 0 起。默认分隔符 ,;Tab 传 "\t"。 2. 创建/解析/读文件失败返回句柄 0;查 CSV取错误()。 3. 用完必须 CSV释放(句柄)。 4. 大文件用 CSV读文件 / CSV写文件,不要先整文件读文本再 CSV解析。 INI支持库Y++ INI支持库(扩展支持库):1. 扁平命令;无 INI解析;内存态用句柄,单次读写文件用 INI读 / INI写。 2. INI创建 / INI读文件 失败返回句柄 0;查 INI取错误()。 3. 句柄用完必须 INI释放。 4. INI取节列表 / INI取键列表 返回 文本数组。 字节流支持库Y++ 字节流支持库(扩展支持库):1. 扁平命令;二进制缓冲:读写文件、十六进制、按代码页编解码文本。 2. 默认代码页 UTF-8=65001,GBK=936。 3. 创建/读文件失败返回句柄 0;查 字节流取错误()。 4. 用完必须 字节流释放。 5. 单字节值 0~255;索引从 0;越界 取… 文件监视支持库Y++ 文件监视支持库(扩展支持库):1. 扁平命令;基于 Windows ReadDirectoryChangesW:后台收变更,回调在 UI 消息线程(可安全改界面)。 2. 最多同时 32 路;目录须已存在;失败 ID=0。 3. 注册回调写 &函数名(与定时器/热键同风格)。 编码支持库Y++ 编码支持库(扩展支持库):1. 扁平命令:到Base64("x"),无对象前缀。 2. 正规 GBK ↔ UTF-8 换码请用字节集 API;文本版 编码转换 是乱码修复语义。 3. 文本摘要用本库 取MD5 等;字节集摘要用 加密解密 的 MD5字节集。 4. 多实例各自默认字符集时用 编码类… 多线程支持库Y++ 多线程支持库(扩展支持库):1. 扁平命令;含「多线程操作」与「线程池操作」两类。 2. 任务回调参数支持无参、标量、数组及混用——不必是数组。 3. 禁止在界面事件里调用 等待线程 / 等待所有线程 / 等待线程池 / 等待任务。 4. 禁对主/UI/当前线程 暂停线程 / 强制结束线程。 音频支持库Y++ 音频支持库(扩展支持库):1. 扁平命令;优先 Media Foundation(MFPlay),失败回退 MCI。 2. 简易命令操作「当前」音频;打开音频 最多 16 路。 3. 音量 0~100;-1 = 默认/不改。带可选 ID:置音频音量([ID], 音量) —— 1 参=音量,2 参… 图片支持库Y++ 图片支持库(扩展支持库):1. 扁平命令:图片读文件(...);图片=编码后的图像字节集(无句柄)。 2. 失败:字节集空 / 逻辑假 / 整数 0 / 文本空;查 图片取最后错误()。 3. 颜色文本 RRGGBB / AARRGGBB;像素色 0xAARRGGBB。 4. GIF 几何只处理… 二维码支持库Y++ 二维码支持库(扩展支持库):1. 扁平命令;生成结果为 PNG/BMP 字节集,可赋图片框或交图片支持库再处理。 2. 前景/背景/渐变/LOGO/静区/点阵为进程内全局,影响后续所有 二维码生成;用 二维码清除样式() 复位。 3. 失败:字节集空 / 逻辑假 / 整数 0 / 文本空;查 二… 键盘支持库Y++ 键盘支持库(扩展支持库):1. 扁平命令;键码为虚拟键码整数(A键、回车键、F1键 等系统常量)。 2. 修饰键标志可相加:Alt=1 · Ctrl=2 · Shift=4 · Win=8(如 Ctrl+Shift=6)。 3. 模拟经 SendInput;高权限/游戏窗可能拦截。 鼠标支持库Y++ 鼠标支持库(扩展支持库):1. 扁平命令;屏幕坐标:左上原点,像素。窗口句柄省略/0=前台窗口。 2. 滚轮通常 ±120 一格(正上负下)。 3. 轨迹/等待按键掩码:1左 · 2右 · 4中 · 8侧1 · 16侧2(可相加)。 4. 矩形为半开 [左,右)×[顶,底)。

扩展类库

IDE「扩展类库」全部对象类(HTTP类、JSON类、绘制类、正则类…);类型名须写完整「××类」。

HTTP类Y++ HTTP类(扩展类库):类型名必须写完整「HTTP类」。声明时自动创建,一般无需再调 创建。 JSON类Y++ JSON类(扩展类库):类型名必须写完整「JSON类」。声明时自动创建,一般无需再调 创建。 JS类Y++ JS类(扩展类库):类型名必须写完整「JS类」。声明时自动创建,一般无需再调 创建。 Lua类Y++ Lua类(扩展类库):类型名必须写完整「Lua类」。声明时自动创建,一般无需再调 创建。 Python类Y++ Python类(扩展类库):类型名写「Python类」。声明时自动创建。 Redis类Y++ Redis类(扩展类库):类型名写「Redis类」。声明时自动创建。 MQTT类Y++ MQTT类(扩展类库):类型名必须写完整「MQTT类」。声明时自动创建。 SQLite类Y++ SQLite类(扩展类库):类型名必须写完整「SQLite类」。声明时自动创建,一般无需再调 创建。 MySQL类Y++ MySQL类(扩展类库):类型名必须写完整「MySQL类」。声明时自动创建,一般无需再调 创建。 PostgreSQL类Y++ PostgreSQL类(扩展类库):类型名必须写完整「PostgreSQL类」(也可写 Postgres类)。声明时自动创建,一般无需再调 创建。 ODBC类Y++ ODBC类(扩展类库):类型名必须写完整「ODBC类」。声明时自动创建,一般无需再调 创建。 TCP类Y++ TCP类(扩展类库):类型名必须写完整「TCP类」。声明时自动创建,一般无需再调 创建。 UDP类Y++ UDP类(扩展类库):类型名必须写完整「UDP类」。声明时自动创建,一般无需再调 创建。 WebSocket类Y++ WebSocket类(扩展类库):类型名必须写完整「WebSocket类」。声明时自动创建,一般无需再调 创建。 谷歌填表类Y++ 谷歌填表类(扩展类库):类型名必须写完整「谷歌填表类」。声明时自动创建,一般无需再调 创建。 Excel类Y++ Excel类(扩展类库):类型名必须写完整「Excel类」。声明时自动创建,一般无需再调 创建。 串口类Y++ 串口类(扩展类库):类型名必须写完整「串口类」。声明时自动创建,一般无需再调 创建。 编码类Y++ 编码类(扩展类库):类型名必须写完整「编码类」。声明时自动创建,一般无需再调 创建。 日志类Y++ 日志类(扩展类库):类型名必须写完整「日志类」。声明时自动创建,一般无需再调 创建。 邮件类Y++ 邮件类(扩展类库):类型名必须写完整「邮件类」。声明时自动创建,一般无需再调 创建。 日期时间类Y++ 日期时间类(扩展类库):类型名必须写完整「日期时间类」。声明时自动创建,一般无需再调 创建。 查询串类Y++ 查询串类(扩展类库):类型名必须写完整「查询串类」。声明时自动创建,一般无需再调 创建。 摄像头类Y++ 摄像头类(扩展类库):类型名必须写完整「摄像头类」。声明时自动创建,一般无需再调 创建。 视频类Y++ 视频类(扩展类库):类型名必须写完整「视频类」。声明时自动创建,一般无需再调 创建。 截图类Y++ 截图类(扩展类库):类型名必须写完整「截图类」。声明时自动创建,一般无需再调 创建截图()。 管道类Y++ 管道类(扩展类库):类型名必须写完整「管道类」。声明时自动创建,一般无需再调 创建。 语音类Y++ 语音类(扩展类库):类型名必须写完整「语音类」。声明时自动创建,一般无需再调 创建。 绘制类 / 画笔类 / 画刷类 / 字体类Y++ 绘制类 / 画笔类 / 画刷类 / 字体类(扩展类库):类型名必须写完整「绘制类」「字体类」「画笔类」「画刷类」。 正则类Y++ 正则类(扩展类库):类型名必须写完整「正则类」。声明时自动创建,一般无需再调 创建。 路径类Y++ 路径类(扩展类库):类型名必须写完整「路径类」。声明时自动创建,一般无需再调 创建。 定时器类Y++ 定时器类(扩展类库):类型名必须写完整「定时器类」。声明时自动创建,一般无需再调 创建。 网址类Y++ 网址类(扩展类库):类型名必须写完整「网址类」。声明时自动创建,一般无需再调 创建。 UUID类Y++ UUID类(扩展类库):类型名必须写完整「UUID类」。声明时自动创建,一般无需再调 创建。 通知类Y++ 通知类(扩展类库):类型名必须写完整「通知类」。声明时自动创建,一般无需再调 创建。 动画类Y++ 动画类(扩展类库):类型名必须写完整「动画类」。声明时自动创建,一般无需再调 创建。 进程类Y++ 进程类(扩展类库):类型名必须写完整「进程类」。声明时自动创建,一般无需再调 创建。 拖放类Y++ 拖放类(扩展类库):类型名必须写完整「拖放类」。声明时自动创建,一般无需再调 创建。 右键菜单类Y++ 右键菜单类(扩展类库):类型名必须写完整「右键菜单类」。声明时自动创建,一般无需再调 创建。 提示层类Y++ 提示层类(扩展类库):类型名必须写完整「提示层类」。声明时自动创建,一般无需再调 创建。 托盘类Y++ 托盘类(扩展类库):类型名必须写完整「托盘类」。声明时自动创建,一般无需再调 创建。 筛选类 / 筛选UI类Y++ 筛选类 / 筛选UI类(扩展类库):类型名必须写完整「筛选类 / 筛选UI类」。声明时自动创建,一般无需再调 创建。 对象类Y++ 对象类(扩展类库):类型名必须写完整「对象类」。声明时自动创建,一般无需再调 创建。

YSS 与控件

界面样式表与各控件写法。

按钮(button)Y++ 按钮(button)(YSS 控件样式):选择器: button · 设计器组件: 按钮 · 按名称: button名称 或 名称 用途: 可点击的命令控件。 画布控件Y++ 画布控件(YSS 控件样式):工具箱组件 画布(设计器类型名:画布;支持库:画布类)。 用于在窗口内做可交互的 2D 绘图:图形编辑、手绘笔迹、像素涂鸦、HUD 叠层、导出图片等。 画布(canvas)Y++ 画布(canvas)(YSS 控件样式):选择器: canvas · 设计器组件: 画布 · 按名称: canvas名称 或 名称 用途: 2D 场景 / 手绘 / 像素层容器。完整 API 见文档中心「画布控件」;叠画亦可用支持库「绘制类」的 绑画布。 图表(chart)Y++ 图表(chart)(YSS 控件样式):选择器: chart · 设计器组件: 图表 · 按名称: chart名称 或 名称 支持库: 组件类库 → 图表类 · 补全: tb / chart / 图表 能力: 收费位 component.chart(须票内显式开通; 不能覆盖) 复选框(checkbox)Y++ 复选框(checkbox)(YSS 控件样式):选择器: checkbox · 设计器组件: 复选框 · 按名称: checkbox名称 或 名称 用途: 二元/三态勾选。 颜色选择器(colorpicker)Y++ 颜色选择器(colorpicker)(YSS 控件样式):选择器: colorpicker · 设计器组件: 颜色选择器 · 按名称: colorpicker名称 或 名称 支持库: 组件类库 → 颜色选择器类 · 补全类名: 颜色选择器类(简拼 ysxzq / ysxzql) 组合框(combobox)Y++ 组合框(combobox)(YSS 控件样式):选择器: combobox · 设计器组件: 组合框 · 按名称: combobox名称 或 名称 用途: 下拉选取或(可编辑时)键入文本。 数据表格(datagrid)Y++ 数据表格(datagrid)(YSS 控件样式):选择器: datagrid · 设计器组件: 数据表格 · 按名称: datagrid名称 或 名称 日期选择器(datepicker)Y++ 日期选择器(datepicker)(YSS 控件样式):选择器: datepicker · 设计器组件: 日期选择器 · 按名称: datepicker名称 或 名称 分组框(groupbox)Y++ 分组框(groupbox)(YSS 控件样式):选择器: groupbox · card(≡ groupbox) · 设计器组件: 分组框 · 按名称: groupbox名称 / card名称 用途: 带标题的容器/卡片外壳。 标签(label)Y++ 标签(label)(YSS 控件样式):选择器: label · 设计器组件: 标签 · 按名称: label名称 或 名称 用途: 静态/富文本展示。 列表框(listbox)Y++ 列表框(listbox)(YSS 控件样式):选择器: listbox · 设计器组件: 列表框 · 按名称: listbox名称 或 名称 用途: 单列/多列项目列表,支持单选/多选、勾选、图标与角标。 菜单栏(menubar)Y++ 菜单栏(menubar)(YSS 控件样式):选择器: menubar · 设计器组件: 菜单栏 · 按名称: menubar名称 或 名称 用途: 窗体顶栏主菜单与下拉子菜单。 消息条(扁平支持库)Y++ 消息条(扁平支持库)(YSS 控件样式):本稿为界面支持库 API,不是 YSS 选择器。 无设计器组件 / messagebar { … };外观由「样式」整数与 置消息条颜色 等命令控制。 分页(pager)Y++ 分页(pager)(YSS 控件样式):选择器: pager · 设计器组件: 分页 · 按名称: pager名称 或 名称 支持库: 组件类库 → 分页类 · 补全: fy / pager / 分页 图片框(picturebox)Y++ 图片框(picturebox)(YSS 控件样式):选择器: picturebox · 设计器组件: 图片框 · 按名称: picturebox名称 或 名称 用途: 显示位图/图标;装饰用背景与边框。 进度条(progressbar)Y++ 进度条(progressbar)(YSS 控件样式):选择器: progressbar · 设计器组件: 进度条 · 按名称: progressbar名称 或 名称 进度环(progressring)Y++ 进度环(progressring)(YSS 控件样式):选择器: progressring · 设计器组件: 进度环 · 按名称: progressring名称 或 名称 · 补全别名: jdh 单选框(radiobutton)Y++ 单选框(radiobutton)(YSS 控件样式):选择器: radiobutton · 设计器组件: 单选框 · 按名称: radiobutton名称 或 名称 滑块(slider)Y++ 滑块(slider)(YSS 控件样式):选择器: slider · 设计器组件: 滑块 · 按名称: slider名称 或 名称 用途: 可拖动的数值选择。 数值微调框(spinbox)Y++ 数值微调框(spinbox)(YSS 控件样式):选择器: spinbox · 设计器组件: 数值微调框 · 按名称: spinbox名称 或 名称 支持库: 组件类库 → 数值微调框类 · 补全: szwtk / spinbox / wtk 状态栏(statusbar)Y++ 状态栏(statusbar)(YSS 控件样式):选择器: statusbar · 设计器组件: 状态栏 · 按名称: statusbar名称 或 名称 支持库: 组件类库 → 状态栏类 · 补全: ztl / statusbar 超级文本框(supertextbox)Y++ 超级文本框(supertextbox)(YSS 控件样式):选择器: supertextbox · 设计器组件: 超级文本框 · 按名称: supertextbox名称 或 名称 开关(switch)Y++ 开关(switch)(YSS 控件样式):选择器: switch · 设计器组件: 开关 · 按名称: switch名称 或 名称 用途: 二元切换控件(开/关)。 表格(tablewidget)Y++ 表格(tablewidget)(YSS 控件样式):选择器: tablewidget · 设计器组件: 表格 · 按名称: tablewidget名称 或 名称 选项卡(tabwidget)Y++ 选项卡(tabwidget)(YSS 控件样式):选择器: tabwidget · 设计器组件: 选项卡 · 按名称: tabwidget名称 或 名称 文本框(textbox)Y++ 文本框(textbox)(YSS 控件样式):选择器: textbox · 设计器组件: 文本框 / 多行文本框 · 按名称: textbox名称 或 名称 用途: 单行/多行输入。 提示层类(扩展类库)Y++ 提示层类(扩展类库)(YSS 控件样式):本稿为扩展类库 API,不是 YSS 选择器。 无 tiplayer { … };外观由下方方法控制。 工具栏(toolbar)Y++ 工具栏(toolbar)(YSS 控件样式):选择器: toolbar · 设计器组件: 工具栏 · 按名称: toolbar名称 或 名称 用途: 图标/文字工具按钮条;可水平或垂直吸附。 托盘类(扩展类库)Y++ 托盘类(扩展类库)(YSS 控件样式):本稿为扩展类库 API,不是 YSS 选择器。 无 tray { … };系统托盘图标由类方法控制。 树形视图(treeview)Y++ 树形视图(treeview)(YSS 控件样式):选择器: treeview · 设计器组件: 树形视图 · 按名称: treeview名称 或 名称 用途: 层级节点列表,支持展开/收起、勾选、图标与角标。 视频播放器(videoplayer)Y++ 视频播放器(videoplayer)(YSS 控件样式):选择器: videoplayer · 设计器组件: 视频播放器 · 按名称: videoplayer名称 或 名称 支持库: 组件类库 → 视频播放器类 · 补全: sp / videoplayer / 视频播放器 对比: DIY 会话请… 浏览器(webbrowser)Y++ 浏览器(webbrowser)(YSS 控件样式):选择器: webbrowser · 设计器组件: 浏览器 · 按名称: webbrowser名称 或 名称 运行时: WebView2(需本机安装 Edge WebView2 运行时)

更多文档

其余专题与示例(共 153 篇)。

示例索引Y++ 示例索引(示例):本目录放可照抄的示例。自定义类型以「逐字段赋值」为主,{} 为可选。 自定义类型示例总览Y++ 自定义类型示例总览(示例):自定义类型是值语义结构体(拷贝的是整份数据),写在 .yt 文件里,工程内任意 .yc 自动可用,无需导入。 01 — 定义与字段Y++ 01 — 定义与字段(示例):工程树 → 源代码 → 右键 → 新建自定义类型文件。 .yt 内只写类型,不写函数。 02 — 初始化与赋值Y++ 02 — 初始化与赋值(示例):这是最直观的用法,和普通变量一样 03 — 嵌套结构Y++ 03 — 嵌套结构(示例):函数 主窗口.创建完毕() { 04 — 数组04 — 数组(示例):Y++ 数组声明:元素类型 数组名[] 或 元素类型 数组名[长度](禁止 元素类型[] 名)。 下标从 0 开始。[长度] 会预分配该长度的数组(整数元素初值为 0)。 05 — 函数参数与返回值Y++ 05 — 函数参数与返回值(示例):函数 加(点 a, 点 b) 点 { r.x = a.x + b.x r.y = a.y + b.y 06 — 复杂业务场景Y++ 06 — 复杂业务场景(示例):示例可拆到多个 .yt;此处为阅读方便写在一起。优先逐字段赋值。 07 — 多文件组织Y++ 07 — 多文件组织(示例):多个 .yt 自动合并,.yc 无需导入。 08 — 常见错误对照08 — 常见错误对照(示例):Y++ 从 0 开始:arr[0] 是第一个元素。 09 — 多层嵌套与下标链Y++ 09 — 多层嵌套与下标链(示例):下标一律从 0 开始。示例用语:部门 / 成员 / 坐标 / 单据。 Excel 按表头读写Y++ Excel 按表头读写(示例):第一行当字段名(「姓名」「手机」),下面按列号读写。不必记 A/B 列。表在工程根 data\名单.xlsx(相对路径)。行列从 1 起。 HTTP 超时与重试Y++ HTTP 超时与重试(示例):库没有单独的「重试」命令:置超时 + 看状态码/取错误(),失败再请求即可。 不要在按钮单击里 延时 空转——会卡住窗口。后台拉、完成事件再改控件(同 线程回 UI)。 图片处理示例Y++ 图片处理示例(示例):可照抄片段。完整命令表见 图片支持库。 进程类:中文不乱码Y++ 进程类:中文不乱码(示例):进程类 按 UTF-8 读管道。CMD 默认常是系统代码页(如 GBK),dir/echo 中文 会花。优先 PowerShell,或先 chcp 65001。 开机启动管理Y++ 开机启动管理(示例):系统取开机启动列表 会枚举 Run、RunOnce、启动文件夹(含 32/64 位视图),填入表格后每行用开关开/关。 线程回 UI 样板Y++ 线程回 UI 样板(示例):工作线程里不要直接改控件。按钮只创建线程池并投递;改标题/表格放在 完成事件 / 空闲事件(界面线程回调)。 TLS 证书开关Y++ TLS 证书开关(示例):没有单独的「证书钉扎」命令。客户端默认 验证系统信任链。内网自签连不上时,用下面两档,不要一上来就关验证。 托盘 + 热键最小例Y++ 托盘 + 热键最小例(示例):最小可运行组合:托盘常驻 + 全局热键显示/退出。更完整的托盘交互见安装目录中的示例工程。 流程控制(基础支持库)Y++ 流程控制(基础支持库)(开发文档):本页把面板里每条命令的参数、写法、示例写全。语言速览见 language §6–§7。 资源目录与「嵌入 exe」Y++ 资源目录与「嵌入 exe」(开发文档):工程树 资源/ 下的文件可在 Release 打包时写入 exe(嵌入表 gyppEmbeddedRes)。代码里路径统一写成 :/相对资源路径。