组件:多选框

多选框(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.选中状态被改变(源对象, 新选中状态)
        调试输出("选中状态:" + 新选中状态)
    结束 事件
    

⚠️ 注意事项

  1. 独立控制:多选框之间没有互斥关系,每个多选框的选中状态独立管理,可同时选中多个。
  2. 与单选框的区别:单选框用于互斥选择(只能选一个),多选框用于多选(可同时选多个)。
  3. 禁用状态禁用 = 真 的多选框不会响应用户点击,但依然可以显示选中状态。
  4. 回调触发置选中状态被改变回调 会在选中状态变化时触发,包括用户点击和代码修改。注意避免在回调中反复修改 选中 导致死循环。
  5. 标题样式:标题文本紧挨着多选框,可通过继承的 字体大小文本颜色字体粗细 控制其样式。
  6. 批量操作:可通过遍历多选框列表统一设置 选中 属性实现全选/取消全选功能。

相关文档

  • 文档框架基础类_视图 —— 视图类提供的所有通用属性和方法
  • 文档文本类组件_单选框 —— 单选组件
  • 文档文本类组件_标签 —— 配合显示说明文字
  • 文档轻语言网站:轻语言语法速查 —— 拉姆达表达式、循环语句等
  • 文档综合演示:权限管理面板 —— 实际应用示例