YStudio Y++

分组框(groupbox)

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

选择器: groupbox · card(≡ groupbox) · 设计器组件: 分组框 · 按名称: groupbox#名称 / card#名称
用途: 带标题的容器/卡片外壳。

硬约束与叠画

  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=左,1=中,2=右
标题位置 整数 读写 0=线中,1=线内,2=线上
标题文字色 文本 读写 如 #RRGGBB,空=用文字色
标题背景色 文本 读写 如 #RRGGBB,空=透明
透明背景 逻辑 读写 真=透明,假=使用背景色
背景色 文本 读写 如 #RRGGBB
圆角 整数 读写 像素,0=直角;边框与背景均支持圆角
显示边框 逻辑 读写 真=显示边框
边框大小 整数 读写 像素
边框颜色 文本 读写 如 #RRGGBB
描边样式 整数 读写 0=实线…4=双点划线

方法

组件类库方法(调用必须带括号)。下表为带类型签名。

方法 签名 返回 说明
置边框 无 置边框([逻辑 显示边框=真], [整数 边框大小=1], [文本 边框颜色], [整数 描边样式]) 无 描边:0实 1虚 2点 3点划 4双点划
置圆角 无 置圆角([整数 半径=4]) 无 0=直角
移动 无 移动(小数 左边, 小数 顶边, [小数 宽度], [小数 高度]) 无 可选同时改宽高
置焦点 无 置焦点() 无
刷新 无 刷新() 无
显示 / 隐藏 无 显示() / 无 隐藏() 无 等同 可见 = 真/假
置字体 逻辑 置字体(字体类 字体) 逻辑 见 painter.md
分组框1.置圆角(8)
分组框1.置边框(真, 1, "#5A5A5A")

事件

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

事件 参数 说明
单击 整数 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 鼠标右键双击控件。
函数 分组框1.单击 (整数 X, 整数 Y) {
    // …
}

YSS 样式

以下为样式表(.yss)键与示例;写样式前请先读窗体 XML 取控件 名称 与 typeId,见 window-xml.md。

样式概览

支持阴影、四角角标、角部 aurora、CRT 扫描线。

伪状态与映射

伪状态: 一般无按钮级伪态;子控件用后代选择器(如 card label)。

标题文案用属性 标题 或代码设置,YSS 不写 text 改标题字。

属性说明(逐键)

标题

属性 作用 取值 / 范围 说明与注意
color 标题文字色 颜色
title-align / text-align 标题水平对齐 left/center/right 二者等效
font-size / font-family / font-bold / font-italic 标题字体 同标签

客户区外壳

属性 作用 取值 / 范围 说明与注意
background-color / background 客户区底色 颜色
transparent-background 不铺底 true/false
border-color / border-width / border-radius / show-border 描边 赛博角标时常 border-radius: 0
padding / padding-* 内边距 像素
box-shadow / shadow 启用阴影 true/false 卡片质感
shadow-color / shadow-blur / shadow-offset-x / shadow-offset-y 阴影参数 同按钮

四角角标(赛博风)

属性 作用 取值 / 范围 说明与注意
corner-brackets 开关四角 L 形 true/false 旁路表绘制
corner-bracket-color 角标色 颜色,如 #FF2EC4
corner-bracket-length / corner-bracket-size 臂长 约 4–64,默认 12
corner-bracket-width / corner-bracket-thickness 线宽 约 1–8,默认 2

角部 aurora 柔光

属性 作用 取值 / 范围 说明与注意
corner-glow / corner-glow-color 径向柔光色 颜色或 true true 用默认青绿
corner-glow-corner 发光角 top-left/top-right(默认)/bottom-right/bottom-left
corner-glow-radius / corner-glow-size 半径 约 24–480,默认 120
corner-glow-opacity 不透明度 1–100,默认 35

CRT 扫描线

属性 作用 取值 / 范围 说明与注意
scanlines 开关扫描线 true/false 圆角内裁剪
scanline-color 线色 颜色
scanline-opacity 不透明度 1–100,默认 6
scanline-spacing 间距 约 1–16,默认 2

使用示例

groupbox {
    color: #DCDCDC;
    background-color: #2A2A2A;
    border-color: #707070;
    border-width: 1;
    border-radius: 4;
    show-border: true;
}

card#卡片信息 {
    background-color: #0D1424;
    border-color: #00F0FF;
    border-radius: 0;
    show-border: true;
    corner-brackets: true;
    corner-bracket-color: #FF2EC4;
    corner-bracket-length: 14;
}

card#卡片空气 {
    background-color: #0F1A14;
    border-color: #1A3A28;
    border-radius: 16;
    show-border: true;
    corner-glow: #4ADE80;
    corner-glow-corner: top-right;
    corner-glow-radius: 220;
    corner-glow-opacity: 32;
    scanlines: true;
    scanline-opacity: 6;
}

完整示例

groupbox {
    color: #DCDCDC;
    background-color: #2A2A2A;
    border-color: #707070;
    border-width: 1;
    border-radius: 4;
    show-border: true;
    padding: 8;
}

groupbox#分组框1 {
    title-align: center;
    font-size: 13;
    font-bold: true;
}

card#卡片信息 {
    color: #E8E8E8;
    background-color: #0D1424;
    border-color: #00F0FF;
    border-width: 1;
    border-radius: 0;
    show-border: true;
    corner-brackets: true;
    corner-bracket-color: #FF2EC4;
    corner-bracket-length: 14;
    corner-bracket-width: 2;
    box-shadow: true;
    shadow-blur: 16;
    shadow-color: #000000;
}