选择器:
spinbox· 设计器组件: 数值微调框 · 按名称:spinbox#名称或#名称
支持库: 组件类库 → 数值微调框类 · 补全:szwtk/spinbox/wtk
硬约束与叠画
- 控件名来自窗口 XML「名称」;属性赋值无括号(如
标题 = "确定"),方法调用必须带括号(如刷新())。 - 事件写
函数 控件名.事件名(参数…),形参类型以本页事件表为准。 - 任意控件客户区叠画用支持库 绘制类:
绘制类 g→g.绑组件(本控件名)(组件名无引号)。画布场景编辑见 画布控件。 - 字体对象见绘制文档中的字体类;
置字体(字体类)将字体应用到本控件。 - 不要虚构未列出的方法;YSS 键见下文与 YSS.md。
属性
设计器属性面板与代码侧可读可写属性(来源:组件类库)。
| 属性 | 类型 | 读写 | 说明 |
|---|---|---|---|
提示 |
文本 | 读写 | 鼠标悬停时的提示文字 |
鼠标指针 |
文本 | 读写 | 空=默认;可用 arrow/hand/ibeam/cross/wait/no/sizeall 等预设,或.cur/.ani 路径(如 资源/press.cur) |
左边 |
小数 | 读写 | 相对窗体左边的位置(像素) |
顶边 |
小数 | 读写 | 相对窗体顶边的位置(像素) |
宽度 |
小数 | 读写 | 控件宽度(像素) |
高度 |
小数 | 读写 | 控件高度(像素) |
停靠 |
整数 | 读写 | 0无 1上 2下 3左 4右 5填充;菜单/工具/状态栏仍用专用吸附 |
可见 |
逻辑 | 读写 | 真=显示,假=隐藏 |
启用 |
逻辑 | 读写 | 真=可用,假=禁用 |
句柄 |
长整数 | 只读 | 组件逻辑句柄(1 起,供动画类等绑定;非 HWND);只读 |
值 |
小数 | 读写 | 当前数值(受小数位数控制,可负) |
当前值 |
小数 | 读写 | 同「值」 |
最小值 |
小数 | 读写 | 下限(可负) |
最大值 |
小数 | 读写 | 上限 |
步长 |
小数 | 读写 | 每次增减的步进(如 0.01) |
小数位数 |
整数 | 读写 | 0-6,0=整数;内部按定点数存储 |
前缀 |
文本 | 读写 | 数值前显示文本,如 ¥ |
后缀 |
文本 | 读写 | 数值后显示文本,如 元 |
特殊值文本 |
文本 | 读写 | 值为最小值且未编辑时显示该文本 |
循环 |
逻辑 | 读写 | 真=到最大/最小后继续步进会绕回 |
千分位 |
逻辑 | 读写 | 真=非编辑态显示千分位分隔(如 1,234.56) |
显示格式 |
整数 | 读写 | 0=默认(前缀+数值+后缀) 1=仅数值 2=前缀+数值 3=数值+后缀 4=前缀+数值+后缀 5=(前缀数值后缀) |
圆角 |
整数 | 读写 | 像素,0=直角 |
显示边框 |
逻辑 | 读写 | 真=显示边框 |
边框大小 |
整数 | 读写 | 像素 |
边框颜色 |
文本 | 读写 | 如 #RRGGBB |
描边样式 |
整数 | 读写 | 0=实线…4=双点划线 |
可编辑 |
逻辑 | 读写 | 真=允许在框内键入数值 |
文字色 |
文本 | 读写 | 如 #RRGGBB |
背景色 |
文本 | 读写 | 如 #1E1E1E |
方法
组件类库方法(调用必须带括号)。下表为带类型签名。
| 方法 | 签名 | 返回 | 说明 |
|---|---|---|---|
置值 |
无 置值(小数 数值) |
无 | 与小数位数一致;也可属性 值 / 当前值 |
取值 |
小数 取值() |
小数 | |
置小数位数 |
无 置小数位数(整数 位数) |
无 | 0–6 |
取小数位数 |
整数 取小数位数() |
整数 | |
置显示格式 |
无 置显示格式(整数 格式) |
无 | 0–5 |
取显示格式 |
整数 取显示格式() |
整数 | |
置范围 |
无 置范围(小数 最小值, 小数 最大值) |
无 | |
取最小值 |
小数 取最小值() |
小数 | |
取最大值 |
小数 取最大值() |
小数 | |
置步长 |
无 置步长(小数 步长) |
无 | |
取步长 |
小数 取步长() |
小数 | |
置前缀 |
无 置前缀(文本 前缀) |
无 | |
取前缀 |
文本 取前缀() |
文本 | |
置后缀 |
无 置后缀(文本 后缀) |
无 | |
取后缀 |
文本 取后缀() |
文本 | |
移动 |
无 移动(小数 左边, 小数 顶边, [小数 宽度], [小数 高度]) |
无 | 可选同时改宽高 |
置焦点 |
无 置焦点() |
无 | |
刷新 |
无 刷新() |
无 | 立即重绘所在窗口 |
显示 / 隐藏 |
无 显示() / 无 隐藏() |
无 | 等同 可见 = 真/假 |
置字体 |
逻辑 置字体(字体类 字体) |
逻辑 | 见 painter.md |
数值微调框1.置小数位数(2)
数值微调框1.置范围(0, 100)
数值微调框1.置值(12.5)
事件
在代码中写 函数 控件名.事件名(...) 处理。
| 事件 | 参数 | 说明 |
|---|---|---|
单击 |
整数 X, 整数 Y | 鼠标左键单击控件。 |
双击 |
整数 X, 整数 Y | 鼠标左键双击控件。 |
右键单击 |
整数 X, 整数 Y | 鼠标右键单击控件。 |
鼠标按下 |
整数 X, 整数 Y, 逻辑 按下 | 鼠标键在控件上按下。按下=真表示当前仍按住。 |
鼠标抬起 |
整数 X, 整数 Y, 逻辑 按下 | 鼠标键在控件上放开。 |
鼠标移动 |
整数 X, 整数 Y, 逻辑 按下 | 鼠标在控件上移动。按下表示左键是否按住。 |
鼠标进入 |
整数 X, 整数 Y | 鼠标指针进入控件区域。 |
鼠标离开 |
整数 X, 整数 Y | 鼠标指针离开控件区域。 |
鼠标左键单击 |
整数 X, 整数 Y | 鼠标左键单击(与「单击」同时触发)。 |
鼠标左键双击 |
整数 X, 整数 Y | 鼠标左键双击(与「双击」同时触发)。 |
鼠标中间单击 |
整数 X, 整数 Y | 鼠标中键单击控件。 |
鼠标齿轮滚动 |
整数 X, 整数 Y, 逻辑 向上 | 在控件上滚动鼠标滚轮。向上=真表示向上滚。 |
鼠标右键单击 |
整数 X, 整数 Y | 鼠标右键单击(与「右键单击」同时触发)。 |
鼠标右键双击 |
整数 X, 整数 Y | 鼠标右键双击控件。 |
值改变 |
小数 当前值, 整数 来源 | 当前数值发生变化时触发(微调、滚轮、键入提交或程序置值);参数为小数与来源(0程序 1按钮 2滚轮 3键盘 4编辑提交)。 |
值将改变 |
小数 当前值, 整数 来源 | 数值即将改变时触发;参数为即将写入的小数与来源。事件内调用 取消() 可拦截本次改值。 |
编辑结束 |
小数 当前值, 整数 来源 | 可编辑时回车或失焦提交编辑后触发;参数为小数当前值与来源。 |
编辑开始 |
小数 当前值, 整数 来源 | 可编辑时进入键入(点选数值区或开始键入)时触发;参数为小数当前值与来源。 |
越界 |
小数 输入值, 整数 方向 | 键入提交时数值超出最小/最大:先触发本事件(输入值+方向),再夹紧并可能触发值改变。方向:-1 低于最小,1 高于最大。 |
函数 数值微调框1.单击 (整数 X, 整数 Y) {
// …
}
YSS 样式
以下为样式表(.yss)键与示例;写样式前请先读窗体 XML 取控件 名称 与 typeId,见 window-xml.md。
布局与子选择器
紧凑数值框:左侧显示当前数值(可带前缀/后缀/千分位/显示格式/特殊值文本),右侧 ▲/▼ 按步长增减。支持小数、负数、循环、滚轮与键盘上下键。
属性说明(逐键)
属性、置值/取值、事件参数一律按真实小数读写。
伪状态: :hover · :focus · :disabled
数值与范围
| 属性 | 作用 | 取值 / 范围 | 说明与注意 |
|---|---|---|---|
value / current-value |
当前数值 | 小数,与 decimals 一致,如 1234.50 |
程序置值只钳 min…max,不吸附步长 |
min / minimum |
最小值 | 小数 | |
max / maximum |
最大值 | 小数 | |
step |
步进 | 小数,如 0.01 / 1 |
▲▼ / 滚轮 / ↑↓ 按此增减 |
decimals / decimal-places |
小数位数 | 0–6;0=整数 |
改位数后值/min/max/step 按比例换算 |
prefix |
前缀文案 | 如 "¥" |
与 format 联动,见下 |
suffix |
后缀文案 | 如 "元" |
|
affix / prefix-suffix |
前后缀简写 | "前\|后";无 \| 只设前缀 |
旧属性仍可读 |
format / display-format |
显示格式 | 整数 0–5(下表) |
亦可写模板文本(尽量映射码) |
editable |
允许键入 | true/false |
假=仅 ▲▼ / 滚轮 / 方向键 |
wrapping / wrap |
到端绕回 | true/false |
|
thousands / thousand-separator / group-thousands |
千分位 | true/false |
仅非编辑态;编辑态纯数字 |
special-value-text / special-text / special |
特殊值文案 | 如 "自动" |
值为最小值且未编辑时显示 |
外壳与字体
| 属性 | 作用 | 取值 / 范围 | 说明与注意 |
|---|---|---|---|
color |
数值文字色 | #RRGGBB 等 |
|
background-color / background |
底板色 | 颜色 | |
border-color / border-width / border-radius / show-border |
描边 | 同按钮 | |
font-size / font-family / font-bold / font-italic |
字体 | 同标签 |
伪态
| 属性 | 作用 | 说明与注意 |
|---|---|---|
hover-background-color / hover-color |
悬停底/字 | 亦可 :hover { … } |
focus-border-color / focus-background-color / focus-glow-color |
焦点边框/底/光晕 | 亦可 :focus { … } |
disabled-color / disabled-background-color |
禁用字/底 | 亦可 :disabled { … } |
显示格式(format / display-format)
| 码 | 含义 |
|---|---|
| 0 | 默认:前缀 + 数值 + 后缀 |
| 1 | 仅数值 |
| 2 | 前缀 + 数值 |
| 3 | 数值 + 后缀 |
| 4 | 前缀 + 数值 + 后缀(显式) |
| 5 | (前缀 + 数值 + 后缀) |
属性面板为下拉框;代码侧写整数即可:数值微调框1.显示格式 = 1。
设置前缀/后缀时,若当前格式会隐藏它们(如 1=仅数值),会自动抬升到兼容码(有前缀→2,有后缀→3,两者都有→0),避免设置冲突。
使用示例
价格(两位小数 + 前缀):
spinbox#价格 {
decimals: 2;
value: 1234.50;
min: 0;
max: 999999.99;
step: 0.01;
prefix: "¥";
format: 2;
thousands: true;
editable: true;
wrapping: true;
special-value-text: "自动";
}
整数数量:
spinbox#数量 {
decimals: 0;
value: 1;
min: 1;
max: 99;
step: 1;
suffix: "件";
format: 3;
}
外壳配色:
spinbox#价格 {
color: #E0E0E0;
background-color: #2D2D30;
border-color: #5A5A5A;
border-radius: 4;
show-border: true;
font-size: 13;
}
完整示例
spinbox#价格 {
color: #E0E0E0;
background-color: #2D2D30;
border-color: #5A5A5A;
border-width: 1;
border-radius: 4;
show-border: true;
font-size: 13;
decimals: 2;
value: 1234.50;
min: 0;
max: 999999.99;
step: 0.01;
prefix: "¥";
suffix: "";
special-value-text: "自动";
wrapping: true;
thousands: true;
format: 2;
editable: true;
}
spinbox#价格:focus {
focus-border-color: #007ACC;
}