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填充;菜单/工具/状态栏仍用专用吸附
\焦点顺序\ 整数 设计器 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)
}