YStudio Y++

分页(pager)

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

选择器: pager · 设计器组件: 分页 · 按名称: pager#名称 或 #名称
支持库: 组件类库 → 分页类 · 补全: fy / pager / 分页

硬约束与叠画

  1. 控件名来自窗口 XML「名称」;属性赋值无括号(如 标题 = "确定"),方法调用必须带括号(如 刷新())。
  2. 事件写 函数 控件名.事件名(参数…),形参类型以本页事件表为准。
  3. 任意控件客户区叠画用支持库 绘制类:绘制类 g → g.绑组件(本控件名)(组件名无引号)。画布场景编辑见 画布控件。
  4. 字体对象见绘制文档中的字体类;置字体(字体类) 将字体应用到本控件。
  5. 不要虚构未列出的方法;YSS 键见下文与 YSS.md。

属性

设计器属性面板与代码侧可读可写属性(来源:组件类库)。

属性 类型 读写 说明
提示 文本 读写 鼠标悬停时的提示文字
鼠标指针 文本 读写 空=默认;可用 arrow/hand/ibeam/cross/wait/no/sizeall 等预设,或 .cur/.ani 路径(如 资源/press.cur)
左边 小数 读写 相对窗体左边的位置(像素)
顶边 小数 读写 相对窗体顶边的位置(像素)
宽度 小数 读写 控件宽度(像素)
高度 小数 读写 控件高度(像素)
停靠 整数 读写 0无 1上 2下 3左 4右 5填充;菜单/工具/状态栏仍用专用吸附
可见 逻辑 读写 真=显示,假=隐藏
启用 逻辑 读写 真=可用,假=禁用
句柄 长整数 只读 组件逻辑句柄(1 起,供动画类等绑定;非 HWND);只读
当前页 整数 读写 当前页索引(从 0 起)
总条数 整数 读写 数据总条数
每页条数 整数 读写 每页显示条数
显示页码数 整数 读写 中间连续显示的页码按钮数
功能样式 文本 读写 扁平/描边/胶囊/极简/块状(功能样式,非 YSS)
显示首页末页 逻辑 读写 真=显示「首页/末页」按钮;也可用方法置显示首末
显示跳转 逻辑 读写 真=显示页码跳转输入;也可用方法置显示跳转
GO位置 文本 读写 隐藏/输入框右/输入框左;也可用方法置GO位置
跳转框宽度 整数 读写 像素;0=按按钮高度自动
省略页码 逻辑 读写 真=首尾+省略号页码;假=连续滑动窗
显示每页条数 逻辑 读写 真=显示「N条」下拉;位标志存 paddingR bit3
每页条数选项 文本 读写 换行分隔,如 10\ 20\ 50\ 100
显示分隔线 逻辑 读写 真=导航/每页条数/跳转之间画竖线
当前页发光 逻辑 读写 真=当前页按钮外发光
发光色 文本 读写 如 #007ACC
发光大小 整数 读写 像素
文字色 文本 读写 如 #E8E8E8
背景色 文本 读写 如 #252526
圆角 整数 读写 像素
显示边框 逻辑 读写 真=显示边框
边框大小 整数 读写 像素
边框颜色 文本 读写 如 #3F3F46

方法

组件类库方法(调用须写括号)。共用:移动 / 置焦点 / 刷新 / 显示 / 隐藏 / 置字体 等。

方法 签名 说明
置边框 置边框([显示边框], [边框大小], [边框颜色], [描边样式]) 设置当前%1边框:是否显示、宽度、颜色、样式。
置圆角 置圆角([半径]) 设置当前组件圆角半径(像素,0=直角)。
移动 移动(左边, 顶边, [宽度], [高度]) 移动当前组件位置;可选同时改宽高。
置焦点 置焦点() 将输入焦点设到当前组件。
刷新 刷新() 立即重绘当前组件所在窗口。
显示 显示() 显示当前组件(等同 可见 = 真)。
隐藏 隐藏() 隐藏当前组件(等同 可见 = 假)。
置字体 置字体(字体) 将「字体类」应用到本组件(字体族/字号/粗体/倾斜/可选颜色)。
置当前页 置当前页(页索引) 设置当前页(从 0 起)。越界会夹紧到有效范围。
取当前页 取当前页() 返回当前页索引(从 0 起)。
取页数 取页数() 返回总页数(由总条数与每页条数计算,至少为 1)。
置总条数 置总条数(条数) 设置数据总条数;页数会随之重算,当前页必要时夹紧。
取总条数 取总条数() 返回数据总条数。
置每页条数 置每页条数(条数) 设置每页显示条数(至少 1)。
取每页条数 取每页条数() 返回每页条数。
置显示页码数 置显示页码数(个数) 设置中间连续显示的页码按钮数量(至少 1)。
取显示页码数 取显示页码数() 返回中间显示的页码按钮数。
置上一页 置上一页() 当前页减一。
置下一页 置下一页() 当前页加一。
置首页 置首页() 跳到第一页。
置尾页 置尾页() 跳到最后一页。
置显示首末 置显示首末(显示) 是否显示首页/末页导航按钮(默认符号 « »,可用置首页文本/置末页文本改写)。
取显示首末 取显示首末() 返回是否显示首页/末页按钮。
置显示跳转 置显示跳转(显示) 是否显示跳转标签与页码输入框。
取显示跳转 取显示跳转() 返回是否显示跳转。
置显示当前页文本 置显示当前页文本(显示) 是否在分页右侧显示「当前页」信息文本(新建默认开;文案默认「第{page}页」)。
取显示当前页文本 取显示当前页文本() 返回是否显示当前页信息文本。
置显示总页码文本 置显示总页码文本(显示) 是否显示「总页数」信息文本(默认「共{pages}页」)。
取显示总页码文本 取显示总页码文本() 返回是否显示总页码信息文本。
置显示总数量文本 置显示总数量文本(显示) 是否显示「总条数」信息文本(新建默认开;文案默认「共{total}条」)。
取显示总数量文本 取显示总数量文本() 返回是否显示总数量信息文本。
置首页文本 置首页文本(文本) 自定义首页按钮显示文本;传空文本则恢复默认「«」。
置上一页文本 置上一页文本(文本) 自定义上一页按钮文本;空则恢复默认「‹」。
置下一页文本 置下一页文本(文本) 自定义下一页按钮文本;空则恢复默认「›」。
置末页文本 置末页文本(文本) 自定义末页按钮文本;空则恢复默认「»」。
置跳转文本 置跳转文本(文本) 自定义跳转标签文本;空则恢复默认「跳转」。
置当前页文本 置当前页文本(文本) 设置「当前页」信息区的显示模板。空文本=默认「第{page}页」。须先 置显示当前页文本(真)。
置总页码文本 置总页码文本(文本) 设置「总页数」信息区模板。空文本=默认「共{pages}页」。须先 置显示总页码文本(真)。
置总数量文本 置总数量文本(文本) 设置「总条数」信息区模板。空文本=默认「共{total}条」。须先 置显示总数量文本(真)。
置GO位置 置GO位置(位置) 设置 GO 按钮位置:0=隐藏,1=输入框右,2=输入框左。
取GO位置 取GO位置() 返回 GO 位置(0隐藏 1右 2左)。
置跳转框宽度 置跳转框宽度(像素) 跳转输入框宽度(像素)。0=按按钮高度自动。
取跳转框宽度 取跳转框宽度() 返回跳转框宽度设置(0=自动)。
置省略页码 置省略页码(显示) 真=首尾页+省略号;假=连续滑动窗。
取省略页码 取省略页码() 返回是否启用省略页码。
置显示每页条数 置显示每页条数(显示) 是否显示「N条」每页条数下拉。
取显示每页条数 取显示每页条数() 返回是否显示每页条数下拉。
置每页条数选项 置每页条数选项(选项) 设置下拉选项,换行或逗号分隔,如 “10\ 20\ 50\ 100”。
取每页条数选项 取每页条数选项() 返回每页条数选项文本。
置显示分隔线 置显示分隔线(显示) 是否在导航/每页条数/跳转段之间画竖线。
取显示分隔线 取显示分隔线() 返回是否显示段间分隔线。
置GO文本 置GO文本(文本) 设置 GO 按钮文案;空=默认 GO。
分页1.刷新()
// 例:分页1.置边框(…)

事件

在代码中写 函数 控件名.事件名(...) 处理。

事件 参数 说明
单击 整数 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 同上 与列表项写法一致

外壳与当前页发光

属性 作用 取值 / 范围 说明与注意
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;
}