组件:多选框
多选框(Checkbox)组件用于在一组选项中实现多项勾选,每个选项独立控制选中状态。它支持设置标题、选中状态、禁用状态,并在状态变化时触发回调。常用于权限分配、偏好设置、批量选择、兴趣标签等场景。
典型使用场景:
- 权限管理(用户角色权限分配)
- 偏好设置(通知设置、隐私设置、显示设置)
- 批量选择(邮件选择、文件选择、商品选择)
- 兴趣标签(用户兴趣选择、技能标签选择)
- 订阅服务(邮件订阅、短信订阅、推送订阅)
📌 继承自视图的成员速查
本组件继承自 视图 类,可直接使用以下属性和方法:
属性: ID、左边、顶边、右边、底边、宽度、高度、背景、背景颜色、背景图像、文本、文本颜色、字体、字体大小、字体粗细、行高、边框、边框圆角、边框宽度、光标样式、显示模式、透明度、外边距、外边距底、外边距左、外边距右、外边距顶、最大高度、最大宽度、最小高度、最小宽度、内边距、内边距底、内边距左、内边距右、内边距顶、定位、CLASS、InnerHTML、OuterHTML、内容水平对齐方式、首行缩进、可视、显示层级、内联样式、禁用
方法: 追加内联样式(样式文本)、置内联样式(名称,值)、取内联样式值(名称)、取Style对象()、添加事件(事件名称, 回调函数)、删除事件(事件名称, 回调函数)、获取焦点()、清除焦点()、添加样式类(类名称)、移除样式类(类名称)、取样式类列表()、取样式类()、执行单击()、取属性值(属性名)、取属性节点(属性名)、取布局参数()、取渲染宽度()、取渲染高度()、取渲染顶边()、取渲染左边()、左侧对齐到(目标组件,偏移量)、右侧对齐到(目标组件,偏移量)、顶边对齐到(目标组件,偏移量)、底边对齐到(目标组件,偏移量)、右侧对齐到左(目标组件, 偏移量)、左侧对齐到右(目标组件, 偏移量)、底边对齐到顶(目标组件, 偏移量)、顶边对齐到底(目标组件, 偏移量)、有指定属性(属性名)、有属性()、内容可编辑()、包含CSS类(类名)、取命名空间()、取下个节点()、取下个元素()、取节点名称()、取节点类型()、取父节点()、取父元素()、取上个节点()、取上个元素()、销毁()、删除属性(属性名)、删除属性节点(属性名)、置属性值(属性名, 属性值)、置属性节点(属性节点)、取标签名()、移动(左边 顶边, 宽度, 高度)、取原生对象()、置被单击回调(回调函数)、置被双击回调(回调函数)、置鼠标被进入回调(回调函数)、置鼠标被移出回调(回调函数)、置鼠标被移动回调(回调函数)、置鼠标被按下回调(回调函数)、置鼠标被抬起回调(回调函数)、置鼠标滚轮被滚动回调(回调函数)、置键盘被按下回调(回调函数)、置按键被抬起回调(回调函数)、置按键被压下回调(回调函数)、置被失去焦点回调(回调函数)、置被获得焦点回调(回调函数)
事件: 被单击(源对象,事件源)、被双击(源对象,事件源)、鼠标被进入(源对象,事件源)、鼠标被移出(源对象,事件源)、鼠标被移动(源对象,事件源)、鼠标被按下(源对象,事件源)、鼠标被抬起(源对象,事件源)、鼠标滚轮被滚动(源对象,事件源)、键盘被按下(源对象,事件源)、按键被抬起(源对象,事件源)、按键被压下(源对象,事件源)、被失去焦点(源对象,事件源)、被获得焦点(源对象,事件源)
💡 完整成员列表及详细说明请参考:
视图类
常用操作速查
| 操作 | 属性/方法 | 示例 |
|---|---|---|
| 设置多选框标题 | 标题 | 多选框1.标题 = "同意协议" |
| 设置选中状态 | 选中 | 多选框1.选中 = 真 |
| 禁用/启用组件 | 禁用 | 多选框1.禁用 = 真 |
| 设置选中状态改变回调 | 置选中状态被改变回调(回调函数) | 多选框1.置选中状态被改变回调((源对象, 新选中状态) => { ... }) |
| 获取当前选中状态 | 选中 | 变量 状态 = 多选框1.选中 |
样式美化参考
多选框的外观可通过继承的视图属性以及 CSS 类进行美化:
| 样式变体 | 属性组合 |
|---|---|
| 方形多选框(默认) | 边框圆角 = "4px",宽度 = 20,高度 = 20 |
| 圆形多选框 | 边框圆角 = "50%",宽度 = 20,高度 = 20 |
| 大尺寸多选框 | 宽度 = 24,高度 = 24,字体大小 = "16px" |
| 选中状态样式 | 背景颜色 = "#1890ff",边框 = "2px solid #1890ff" |
| 未选中状态样式 | 背景颜色 = "#ffffff",边框 = "1px solid #d9d9d9" |
| 禁用状态样式 | 背景颜色 = "#f5f5f5",边框 = "1px solid #d9d9d9",透明度 = "0.6" |
| 水平布局(多个并排) | 显示模式 = "行内块",外边距右 = "16px" |
| 垂直布局(多个堆叠) | 显示模式 = "块级",外边距底 = "8px" |
多选框内部的勾选标记(✓)由组件内部管理,可通过 CSS 类自定义颜色和大小。
基础示例
创建一个简单的多选框,标题为“同意用户协议”,默认选中,并在状态变化时弹出提示。
变量 多选框1 = 创建 多选框()
多选框1.左边 = 50
多选框1.顶边 = 50
多选框1.标题 = "同意用户协议"
多选框1.选中 = 真
多选框1.字体大小 = "14px"
多选框1.置选中状态被改变回调((源对象, 新选中状态) => {
如果(新选中状态)
弹出提示("已同意协议")
否则
弹出提示("已取消同意")
结束 如果
})
添加组件(多选框1)
综合示例:权限管理面板
本示例模拟一个用户权限管理界面,包含多个权限选项(读、写、执行、删除),并提供一个“全选/取消全选”按钮,以及统计当前选中数量的标签。
' ========== 创建面板 ==========
变量 权限面板 = 创建 卡片框()
权限面板.左边 = 30
权限面板.顶边 = 30
权限面板.宽度 = 300
权限面板.标题 = "🔐 权限设置"
权限面板.边框 = "1px solid #e8e8e8"
权限面板.边框圆角 = "8px"
权限面板.内边距 = "16px"
添加组件(权限面板)
' 标题提示
变量 提示标签 = 创建 标签()
提示标签.文本 = "请为用户分配权限:"
提示标签.字体大小 = "14px"
提示标签.文本颜色 = "#666"
提示标签.内边距 = "0 0 12px 0"
权限面板.添加组件(提示标签)
' 权限选项列表
变量 权限数据 = [
{标题: "读取", 选中: 真},
{标题: "写入", 选中: 假},
{标题: "执行", 选中: 假},
{标题: "删除", 选中: 假}
]
' 存储多选框引用,以便后续操作
变量 权限多选框列表 = []
变量循环(i = 0, 取数组成员数(权限数据), 1)
变量 项 = 权限数据[i]
变量 多选框 = 创建 多选框()
多选框.标题 = 项.标题
多选框.选中 = 项.选中
多选框.显示模式 = "块级"
多选框.内边距 = "4px 0"
权限面板.添加组件(多选框)
添加成员(权限多选框列表, 多选框)
' 绑定单个多选框变化事件(用于更新统计)
多选框.置选中状态被改变回调((源对象, 新选中状态) => {
更新统计()
})
结束循环
' 全选按钮
变量 全选按钮 = 创建 按钮()
全选按钮.文本 = "全选"
全选按钮.宽度 = 80
全选按钮.高度 = 32
全选按钮.背景颜色 = "#1890ff"
全选按钮.文本颜色 = "#ffffff"
全选按钮.边框圆角 = "4px"
全选按钮.内边距 = "12px 0 0"
权限面板.添加组件(全选按钮)
' 取消全选按钮
变量 取消全选按钮 = 创建 按钮()
取消全选按钮.文本 = "取消全选"
取消全选按钮.宽度 = 100
取消全选按钮.高度 = 32
取消全选按钮.背景颜色 = "#d9d9d9"
取消全选按钮.文本颜色 = "#333"
取消全选按钮.边框圆角 = "4px"
取消全选按钮.内边距 = "12px 0 0"
权限面板.添加组件(取消全选按钮)
' 统计标签
变量 统计标签 = 创建 标签()
统计标签.文本 = "已选择 1 项"
统计标签.字体大小 = "14px"
统计标签.文本颜色 = "#999"
统计标签.内边距 = "12px 0 0"
权限面板.添加组件(统计标签)
' ========== 辅助函数 ==========
函数 更新统计()
变量 已选计数 = 0
变量循环(i = 0, 取数组成员数(权限多选框列表), 1)
变量 多选框 = 权限多选框列表[i]
如果(多选框.选中)
已选计数 = 已选计数 + 1
结束 如果
结束循环
统计标签.文本 = "已选择 " + 已选计数 + " 项"
结束 函数
' 全选按钮点击
全选按钮.置被单击回调((源对象) => {
变量循环(i = 0, 取数组成员数(权限多选框列表), 1)
权限多选框列表[i].选中 = 真
结束循环
更新统计()
})
' 取消全选按钮点击
取消全选按钮.置被单击回调((源对象) => {
变量循环(i = 0, 取数组成员数(权限多选框列表), 1)
权限多选框列表[i].选中 = 假
结束循环
更新统计()
})
' 初始化统计
更新统计()
属性详解
标题
- 类型:
文本型 - 说明: 设置或获取多选框右侧显示的标题文本,用于描述选项内容。
选中
- 类型:
逻辑型 - 说明: 设置或获取当前多选框是否被选中。可以独立控制,不与其他多选框互斥。
禁用
- 类型:
逻辑型 - 说明: 设置或获取是否禁用多选框。禁用后,用户无法点击切换,样式变灰。默认为
假。
函数详解
置选中状态被改变回调(回调函数)
- 功能: 设置当多选框的选中状态发生变化时的回调函数。回调会在用户点击切换(或通过代码修改
选中)时触发。 - 参数:
回调函数,格式为(源对象, 新选中状态) => { ... }。源对象:触发事件的多选框组件本身。新选中状态:逻辑型,真表示变为选中,假表示变为未选中。
- 返回值: 无。
- 示例:
多选框1.置选中状态被改变回调((源对象, 新选中状态) => { 如果(新选中状态) 调试输出("选中:" + 源对象.标题) 结束 如果 })
事件说明
选中状态被改变(源对象, 新选中状态)
- 功能: 与
置选中状态被改变回调等效,适用于设计文件(.spldg)中定义的组件。 - 示例:
事件 多选框1.选中状态被改变(源对象, 新选中状态) 调试输出("选中状态:" + 新选中状态) 结束 事件
⚠️ 注意事项
- 独立控制:多选框之间没有互斥关系,每个多选框的选中状态独立管理,可同时选中多个。
- 与单选框的区别:单选框用于互斥选择(只能选一个),多选框用于多选(可同时选多个)。
- 禁用状态:
禁用 = 真的多选框不会响应用户点击,但依然可以显示选中状态。 - 回调触发:
置选中状态被改变回调会在选中状态变化时触发,包括用户点击和代码修改。注意避免在回调中反复修改选中导致死循环。 - 标题样式:标题文本紧挨着多选框,可通过继承的
字体大小、文本颜色、字体粗细控制其样式。 - 批量操作:可通过遍历多选框列表统一设置
选中属性实现全选/取消全选功能。
相关文档
- 文档
框架基础类_视图—— 视图类提供的所有通用属性和方法 - 文档
文本类组件_单选框—— 单选组件 - 文档
文本类组件_标签—— 配合显示说明文字 - 文档
轻语言网站:轻语言语法速查—— 拉姆达表达式、循环语句等 - 文档
综合演示:权限管理面板—— 实际应用示例