YStudio Y++

YSS · 数值微调框(spinbox)

Y++ / YStudio 开发文档 · 一点滴

选择器: spinbox · 设计器组件: 数值微调框 · 按名称: spinbox#名称#名称
支持库: 组件类库 → 数值微调框类 · 补全: szwtk / spinbox / wtk

紧凑数值框:左侧显示当前数值(可带前缀/后缀/千分位/显示格式/特殊值文本),右侧 ▲/▼ 按步长增减。支持小数、负数、循环、滚轮与键盘上下键。


字段映射

属性(中文) YSS / 英文 说明
值 / 当前值 value / current-value 小数(与小数位数一致)
最小值 min / minimum 小数
最大值 max / maximum 小数
步长 step 小数(如 0.01
小数位数 decimals 0–6,0=整数
可编辑 editable 允许键入
循环 wrapping 到端后继续步进绕回
千分位 thousands 非编辑态显示 1,234.56;编辑态仍为纯数字
显示格式 display-format 整数 0–5,见下表
前缀 prefix 数值前文本(如 ¥
后缀 suffix 数值后文本(如
特殊值文本 special-value-text 值为最小值且未编辑时显示

兼容:旧属性 前后缀 / prefix-suffix: "前|后" 仍可读;旧自由文本「显示格式」会尽量映射到整数码。

属性、置值/取值、事件参数一律按真实小数读写。

显示格式(整数)

含义
0 默认:前缀 + 数值 + 后缀
1 仅数值
2 前缀 + 数值
3 数值 + 后缀
4 前缀 + 数值 + 后缀(显式)
5 (前缀 + 数值 + 后缀)

属性面板为下拉框;代码侧写整数即可:数值微调框1.显示格式 = 1

设置前缀/后缀时,若当前格式会隐藏它们(如 1=仅数值),会自动抬升到兼容码(有前缀→2,有后缀→3,两者都有→0),避免设置冲突。

方法(续)

方法 说明
置范围 / 取最小值 / 取最大值 小数范围
置步长 / 取步长 步进
置前缀 / 取前缀 / 置后缀 / 取后缀 显示前后缀(会联动显示格式)

YSS 示例

spinbox#价格 {
    decimals: 2;
    value: 1234.50;
    min: 0;
    max: 999999.99;
    step: 0.01;
    prefix: "¥";
    suffix: "";
    special-value-text: "自动";
    wrapping: true;
    thousands: true;
    display-format: 2;
    editable: true;
}

代码 API

数值微调框1.置值(12.5)
小数 v = 数值微调框1.取值()
数值微调框1.置小数位数(2)
整数 d = 数值微调框1.取小数位数()
数值微调框1.显示格式 = 1
数值微调框1.置显示格式(2)
整数 f = 数值微调框1.取显示格式()
方法 签名 说明
置值 置值(小数 数值) 设置当前值(会先发「值将改变」,可被取消)
取值 取值() → 小数 读取当前值
置小数位数 置小数位数(整数 位数) 0–6;换算现有定点字段
取小数位数 取小数位数() → 整数 当前小数位数
置显示格式 置显示格式(整数 格式) 0–5,见上表
取显示格式 取显示格式() → 整数 当前显示格式码

事件

事件 参数 何时触发
值将改变 小数 当前值, 整数 来源 即将写入新值;事件内 取消() 可拦截
值改变 小数 当前值, 整数 来源 实际改值成功后
编辑开始 小数 当前值, 整数 来源 开始键入时
编辑结束 小数 当前值, 整数 来源 回车/失焦提交(仅真正进入过编辑时)
越界 小数 输入值, 整数 方向 键入超出范围:先本事件,再夹紧

来源枚举

含义
0 程序(置值/属性)
1 按钮 ▲/▼
2 滚轮
3 键盘 ↑/↓
4 编辑提交
数值微调框1.值将改变(小数 当前值, 整数 来源)
{
    如果 (当前值 > 100)
        取消()   // 拦截本次改值
}

数值微调框1.值改变(小数 当前值, 整数 来源)
{
    输出("值=", 当前值, " 来源=", 来源)
}

取消() / 取消事件():仅在当前可取消事件(如「值将改变」)处理中有效。


交互说明

  • ▲/▼ / 滚轮 / ↑↓:按步长增减;开启「循环」时到端绕回;均走「值将改变」→「值改变」。步进时保持前缀/后缀/千分位等显示态。
  • 可编辑:单击数值区只聚焦(仍显示前缀/后缀);开始键入后进入编辑缓冲(纯数字);回车或失焦提交。清空后失焦还原为原值。
  • 千分位:仅非编辑态、且整数部分绝对值 ≥ 1000 时显示逗号(如 1,234.56)。
  • 特殊值文本:当前值等于最小值且未编辑时显示该文案(如最小值 0、文案 自动);编辑时可键入该文案以置为最小。
  • 小数位数:0–6(0=整数)。改位数后值/最小/最大/步长会按比例换算。
  • 程序置值置值 / .值 / .当前值 只钳制 min…max,不按步长吸附;▲▼ / 滚轮 / ↑↓ 仍按步长。

支持库面板与补全

名称 简拼示例 说明
数值微调框 / 数值微调框类 szwtk / szwtkkl 类型与类名
置值 / 取值 zz / qz 小数读写
置小数位数 / 小数位数 zxsws / xsws 0–6
置显示格式 / 显示格式 zxsg / xsgs 0–5
值将改变 / 值改变 zjgb / 自动全拼 事件;将改变可 取消()
编辑开始 / 编辑结束 / 越界 bjks / bjjs / yj 事件

编辑器补全:全拼 / 简拼 / 双拼前缀 + 上表别名。支持库路径:组件类库 → 数值微调框类