选择器:
pager· 设计器组件: 分页 · 按名称:pager#名称或#名称
支持库: 组件类库 → 分页类 · 补全:fy/pager/分页
硬约束与叠画
- 控件名来自窗口 XML「名称」;属性赋值无括号(如
标题 = "确定"),方法调用必须带括号(如刷新())。 - 事件写
函数 控件名.事件名(参数…),形参类型以本页事件表为准。 - 任意控件客户区叠画用支持库 绘制类:
绘制类 g→g.绑组件(本控件名)(组件名无引号)。画布场景编辑见 画布控件。 - 字体对象见绘制文档中的字体类;
置字体(字体类)将字体应用到本控件。 - 不要虚构未列出的方法;YSS 键见下文与 YSS.md。
属性
设计器属性面板与代码侧可读可写属性(来源:组件类库)。
| 属性 | 类型 | 读写 | 说明 |
|---|---|---|---|
提示 |
文本 | 读写 | 鼠标悬停时的提示文字 |
鼠标指针 |
文本 | 读写 | 空=默认;可用 arrow/hand/ibeam/cross/wait/no/sizeall 等预设,或.cur/.ani 路径(如 资源/press.cur) |
左边 |
小数 | 读写 | 相对窗体左边的位置(像素) |
顶边 |
小数 | 读写 | 相对窗体顶边的位置(像素) |
宽度 |
小数 | 读写 | 控件宽度(像素) |
高度 |
小数 | 读写 | 控件高度(像素) |
停靠 |
整数 | 读写 | 0无 1上 2下 3左 4右 5填充;菜单/工具/状态栏仍用专用吸附 |
| \焦点顺序\ | 整数 | 设计器 | Tab 切换顺序,越小越先;同值按控件表下标 |
可见 |
逻辑 | 读写 | 真=显示,假=隐藏 |
启用 |
逻辑 | 读写 | 真=可用,假=禁用 |
句柄 |
长整数 | 只读 | 组件逻辑句柄(1 起,供动画类等绑定;非 HWND);只读 |
当前页 |
整数 | 读写 | 当前页索引(从 0 起) |
总条数 |
整数 | 读写 | 数据总条数 |
每页条数 |
整数 | 读写 | 每页显示条数 |
显示页码数 |
整数 | 读写 | 中间连续显示的页码按钮数 |
功能样式 |
文本 | 读写 | 扁平/描边/胶囊/极简/块状(功能样式,非 YSS) |
显示首页末页 |
逻辑 | 读写 | 真=显示「首页/末页」按钮;也可用方法置显示首末 |
显示跳转 |
逻辑 | 读写 | 真=显示页码跳转输入;也可用方法置显示跳转 |
GO位置 |
文本 | 读写 | 隐藏/输入框右/输入框左;也可用方法置GO位置 |
跳转框宽度 |
整数 | 读写 | 像素;0=按按钮高度自动 |
省略页码 |
逻辑 | 读写 | 真=首尾+省略号页码;假=连续滑动窗 |
显示每页条数 |
逻辑 | 读写 | 真=显示「N条」下拉;位标志存 paddingR bit3 |
每页条数选项 |
文本 | 读写 | 换行分隔,如 10\ 20\ 50\ 100 |
显示分隔线 |
逻辑 | 读写 | 真=导航/每页条数/跳转之间画竖线 |
当前页发光 |
逻辑 | 读写 | 真=当前页按钮外发光 |
发光色 |
文本 | 读写 | 如 #007ACC |
发光大小 |
整数 | 读写 | 像素 |
文字色 |
文本 | 读写 | 如 #E8E8E8 |
背景色 |
文本 | 读写 | 如 #252526 |
圆角 |
整数 | 读写 | 像素 |
显示边框 |
逻辑 | 读写 | 真=显示边框 |
边框大小 |
整数 | 读写 | 像素 |
边框颜色 |
文本 | 读写 | 如 #3F3F46 |
方法
组件类库方法(调用必须带括号)。下表为带类型签名。
| 方法 | 签名 | 返回 | 说明 |
|---|---|---|---|
置边框 |
无 置边框([逻辑 显示边框=真], [整数 边框大小=1], [文本 边框颜色], [整数 描边样式]) |
无 | 描边:0实 1虚 2点 3点划 4双点划 |
置圆角 |
无 置圆角([整数 半径=4]) |
无 | 0=直角 |
置当前页 |
无 置当前页(整数 页索引) |
无 | 从 0 起;越界夹紧 |
取当前页 |
整数 取当前页() |
整数 | |
取页数 |
整数 取页数() |
整数 | 至少 1 |
置总条数 |
无 置总条数(整数 条数) |
无 | ≥0 |
取总条数 |
整数 取总条数() |
整数 | |
置每页条数 |
无 置每页条数(整数 条数) |
无 | 至少 1 |
取每页条数 |
整数 取每页条数() |
整数 | |
置显示页码数 |
无 置显示页码数(整数 个数) |
无 | 中间连续页码按钮数 |
取显示页码数 |
整数 取显示页码数() |
整数 | |
置上一页 / 置下一页 |
无 置上一页() / 无 置下一页() |
无 | |
置首页 / 置尾页 |
无 置首页() / 无 置尾页() |
无 | |
置显示首末 |
无 置显示首末(逻辑 显示) |
无 | |
取显示首末 |
逻辑 取显示首末() |
逻辑 | |
置显示跳转 |
无 置显示跳转(逻辑 显示) |
无 | |
取显示跳转 |
逻辑 取显示跳转() |
逻辑 | |
置显示当前页文本 |
无 置显示当前页文本(逻辑 显示) |
无 | |
取显示当前页文本 |
逻辑 取显示当前页文本() |
逻辑 | |
置显示总页码文本 |
无 置显示总页码文本(逻辑 显示) |
无 | |
取显示总页码文本 |
逻辑 取显示总页码文本() |
逻辑 | |
置显示总数量文本 |
无 置显示总数量文本(逻辑 显示) |
无 | |
取显示总数量文本 |
逻辑 取显示总数量文本() |
逻辑 | |
置首页文本 / 置末页文本 |
无 置首页文本(文本 文本) 等 |
无 | 空=恢复默认符号 |
置上一页文本 / 置下一页文本 |
无 置上一页文本(文本 文本) 等 |
无 | |
置跳转标签 |
无 置跳转标签(文本 文本) |
无 | |
置当前页文本格式 |
无 置当前页文本格式(文本 格式) |
无 | 可用 {page} 等占位 |
置总页码文本格式 |
无 置总页码文本格式(文本 格式) |
无 | {pages} |
置总数量文本格式 |
无 置总数量文本格式(文本 格式) |
无 | {total} |
移动 |
无 移动(小数 左边, 小数 顶边, [小数 宽度], [小数 高度]) |
无 | 可选同时改宽高 |
置焦点 |
无 置焦点() |
无 | |
刷新 |
无 刷新() |
无 | |
显示 / 隐藏 |
无 显示() / 无 隐藏() |
无 | 等同 可见 = 真/假 |
置字体 |
逻辑 置字体(字体类 字体) |
逻辑 | 见 painter.md |
分页1.置总条数(200)
分页1.置每页条数(20)
分页1.置当前页(0)
事件
在代码中写 函数 控件名.事件名(...) 处理。
| 事件 | 参数 | 说明 |
|---|---|---|
单击 |
整数 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 | 鼠标右键双击控件。 |
获得焦点 |
无 | 控件获得键盘焦点。 |
失去焦点 |
无 | 控件失去键盘焦点。 |
按键按下 |
整数 键码, 整数 Shift, 逻辑 Ctrl, 整数 组合键 | 按键按下(含自动重复)。Shift=是否按住Shift;Ctrl=是否按住Ctrl;组合键=1/2/4 位标志。 |
按下某键 |
整数 键码, 整数 Shift, 逻辑 Ctrl, 整数 组合键 | 某键刚被按下的第一下(不含自动重复)。 |
按住某键 |
整数 键码, 整数 Shift, 逻辑 Ctrl, 整数 组合键 | 按住某键触发的自动重复。 |
抬起某键 |
整数 键码, 整数 Shift, 逻辑 Ctrl, 整数 组合键 | 某键被放开。 |
当前页改变 |
整数 当前值 | 当前页发生变化时触发(点页码/上一页下一页/跳转或程序置页)。参数:整数 当前页(从 0 起)。 |
每页条数改变 |
整数 当前值 | 每页条数下拉或程序置每页条数后触发。参数:整数 每页条数。 |
函数 分页1.单击 (整数 X, 整数 Y) {
// …
}
YSS 样式
以下为样式表(.yss)键与示例;写样式前请先读窗体 XML 取控件 名称 与 typeId,见 window-xml.md。
布局与子选择器
页码导航条:上一页 / 页码(可省略号)/ 下一页,可选每页条数下拉、跳转输入框 + GO、段间分隔线、信息文本。功能样式(扁平/描边/胶囊/极简/块状)走属性面板「功能样式」,不是 YSS。
设计器属性(面板)(面板)
| 属性 | 字段复用 | 说明 |
|---|---|---|
| 当前页 | imageOpacity |
从 0 起的页索引 |
| 总条数 | paddingL |
数据总条数(≥0) |
| 每页条数 | paddingT |
至少 1;总页数 = ceil(总条数/每页条数) |
| 显示页码数 | paddingB |
中间页码窗口宽度(省略模式下为中段按钮数) |
| 功能样式 | contentMode |
0扁平 1描边 2胶囊 3极简 4块状 |
| 显示首页末页 | wordWrap |
省略页码关闭时显示 « »;省略开启时首尾页已在序列中 |
| 显示跳转 | textEllipsis |
跳转输入框(及可选 GO) |
| GO位置 | iconPos |
0隐藏 · 1输入框右(默认)· 2输入框左 |
| 跳转框宽度 | imageSpacing |
像素;0=按按钮高度自动(约 bw*2.4) |
| 省略页码 | ellipsisMode |
真=1 … 14 15 16 … 30;假=连续滑动窗 |
| 显示每页条数 | paddingR bit3 |
真=显示「N条」下拉 |
| 每页条数选项 | comboItems |
换行分隔,如 10\n20\n50\n100 |
| 显示分隔线 | allowCopy |
真=导航 ∥ 每页条数 ∥ 跳转 之间画竖线 |
| 当前页发光 | outerGlow* |
当前页按钮外发光(也可用 YSS outer-glow*) |
| 文字色 / 背景色 / 圆角 / 边框… | 常规 | 控件外壳 |
默认外观: 新建为透明底板、跳转开、GO=右、省略页码开、每页条数下拉开、分隔线开。旧工程未写新属性时:GO 隐藏、省略/每页条数/分隔线关,行为与旧版一致。旧灰底 #2D2D30 打开时会自动改为透明。
信息文本: 位标志在 paddingR bit0–2(当前页/总页码/总数量);自定义模板不进属性面板,用代码方法设置。设计器默认预览「第N页」「共N条」。
布局(运行时)
[‹] [1] … [14] [15] [16] … [30] [›] | [10条▾] | [输入] [GO] 第15页 共300条
功能样式只影响按钮槽外形;结构由上表属性/方法控制。
属性说明(逐键)
整控件 :hover / :pressed 不会给整条分页铺高亮底;作用在页码/导航按钮槽。功能样式(扁平/描边/胶囊等)走属性面板,不是 YSS 键。
跳转框宽度请用属性/方法 置跳转框宽度,勿占用其它控件的 button-min-width。
伪态映射(页码槽)
| 写法 | 映射字段 | 作用 |
|---|---|---|
pager:hover { background-color; color } |
hoverBack / hoverFore |
非当前页悬停 |
pager:pressed { … } |
pressedBack / pressedFore |
当前页底/字色 |
pager:item:hover / :item:selected |
同上 | 与列表项写法一致 |
XML / 设计器 ↔ YSS
| 设计器项 | 走哪里 |
|---|---|
| 功能样式(扁平/描边/胶囊…) | 属性面板 / 功能样式,不是 YSS 键 |
| 文字色 / 背景色 / 圆角 / 边框 | YSS color / background-color / border-* |
| 透明底板 | transparent-background(新建默认真) |
| 当前页发光 | YSS outer-glow* 或设计器「当前页发光」 |
| 当前页 / 总条数 / 每页条数 | 属性或代码 置当前页 等,不是 YSS |
外壳与当前页发光
| 属性 | 作用 | 取值 / 范围 | 说明与注意 |
|---|---|---|---|
color |
默认页码/导航字色 | 颜色 | |
background-color / background |
整条底板 | 颜色 | 新建默认透明;需底板时关透明 |
transparent-background |
不铺整条底 | true/false |
默认真 |
border-color / border-width / border-radius / show-border |
外壳描边 | 同按钮;圆角常与功能样式配合 | |
outer-glow |
当前页外发光开关 | true/false |
映射 outerGlow*;亦可设计器「当前页发光」 |
outer-glow-color |
发光色 | 颜色,如 #A78BFA |
|
outer-glow-size |
发光半径 | 0–64 像素 |
|
hover-background-color / hover-color |
非当前页悬停底/字 | 亦可 :hover { … } |
|
pressed-background-color / pressed-color |
当前页底/字 | 亦可 :pressed { … } |
紫描边(参考图上排)
pager#分页1 {
color: #E8E8E8;
transparent-background: true;
border-radius: 8;
outer-glow: true;
outer-glow-color: #A78BFA;
outer-glow-size: 10;
}
pager#分页1:hover {
background-color: #4C1D95;
color: #FFFFFF;
}
pager#分页1:pressed {
background-color: #7C3AED;
color: #FFFFFF;
}
设计器里把「功能样式」设为 描边。
青胶囊(参考图下排)
pager#分页2 {
color: #F0FDFA;
transparent-background: true;
border-radius: 20;
outer-glow: true;
outer-glow-color: #2DD4BF;
outer-glow-size: 10;
}
pager#分页2:hover {
background-color: #0F766E;
color: #FFFFFF;
}
pager#分页2:pressed {
background-color: #14B8A6;
color: #FFFFFF;
}
「功能样式」设为 胶囊。
需要整条底板时再关透明并设背景:
pager#分页1 {
transparent-background: false;
background-color: #252526;
border-color: #3F3F46;
border-width: 1;
show-border: true;
}
完整示例
布局与页码数据用属性/代码;外观用 YSS。设计器「功能样式」设为描边或胶囊与下例配合。
pager#分页1 {
color: #E8E8E8;
transparent-background: true;
border-radius: 8;
outer-glow: true;
outer-glow-color: #A78BFA;
outer-glow-size: 10;
}
pager#分页1:hover {
background-color: #4C1D95;
color: #FFFFFF;
}
pager#分页1:pressed {
background-color: #7C3AED;
color: #FFFFFF;
}
函数 主窗口.创建完毕() {
分页1.置总条数(300)
分页1.置每页条数(10)
分页1.置当前页(0)
}