组件:单选框

单选框(Radio Button)组件用于在一组互斥的选项中选择一项,同一组中只能有一个被选中。它支持设置标题、选中状态、禁用状态,并可通过设置相同的 name 属性(或通过 置属性值)来将多个单选框归为一组。常用于性别选择、支付方式、选项偏好等场景。

典型使用场景:

  • 性别选择(男/女/其他)
  • 支付方式选择(微信/支付宝/银行卡)
  • 订阅计划选择(免费/付费/企业版)
  • 评价等级选择(满意/一般/不满意)
  • 选项选择(是/否/不确定)

📌 继承自视图的成员速查

本组件继承自 视图 类,可直接使用以下属性和方法:

属性: ID、左边、顶边、右边、底边、宽度、高度、背景、背景颜色、背景图像、文本、文本颜色、字体、字体大小、字体粗细、行高、边框、边框圆角、边框宽度、光标样式、显示模式、透明度、外边距、外边距底、外边距左、外边距右、外边距顶、最大高度、最大宽度、最小高度、最小宽度、内边距、内边距底、内边距左、内边距右、内边距顶、定位、CLASS、InnerHTML、OuterHTML、内容水平对齐方式、首行缩进、可视、显示层级、内联样式、禁用

方法: 追加内联样式(样式文本)、置内联样式(名称,值)、取内联样式值(名称)、取Style对象()、添加事件(事件名称, 回调函数)、删除事件(事件名称, 回调函数)、获取焦点()、清除焦点()、添加样式类(类名称)、移除样式类(类名称)、取样式类列表()、取样式类()、执行单击()、取属性值(属性名)、取属性节点(属性名)、取布局参数()、取渲染宽度()、取渲染高度()、取渲染顶边()、取渲染左边()、左侧对齐到(目标组件,偏移量)、右侧对齐到(目标组件,偏移量)、顶边对齐到(目标组件,偏移量)、底边对齐到(目标组件,偏移量)、右侧对齐到左(目标组件, 偏移量)、左侧对齐到右(目标组件, 偏移量)、底边对齐到顶(目标组件, 偏移量)、顶边对齐到底(目标组件, 偏移量)、有指定属性(属性名)、有属性()、内容可编辑()、包含CSS类(类名)、取命名空间()、取下个节点()、取下个元素()、取节点名称()、取节点类型()、取父节点()、取父元素()、取上个节点()、取上个元素()、销毁()、删除属性(属性名)、删除属性节点(属性名)、置属性值(属性名, 属性值)、置属性节点(属性节点)、取标签名()、移动(左边 顶边, 宽度, 高度)、取原生对象()、置被单击回调(回调函数)、置被双击回调(回调函数)、置鼠标被进入回调(回调函数)、置鼠标被移出回调(回调函数)、置鼠标被移动回调(回调函数)、置鼠标被按下回调(回调函数)、置鼠标被抬起回调(回调函数)、置鼠标滚轮被滚动回调(回调函数)、置键盘被按下回调(回调函数)、置按键被抬起回调(回调函数)、置按键被压下回调(回调函数)、置被失去焦点回调(回调函数)、置被获得焦点回调(回调函数)

事件: 被单击(源对象,事件源)、被双击(源对象,事件源)、鼠标被进入(源对象,事件源)、鼠标被移出(源对象,事件源)、鼠标被移动(源对象,事件源)、鼠标被按下(源对象,事件源)、鼠标被抬起(源对象,事件源)、鼠标滚轮被滚动(源对象,事件源)、键盘被按下(源对象,事件源)、按键被抬起(源对象,事件源)、按键被压下(源对象,事件源)、被失去焦点(源对象,事件源)、被获得焦点(源对象,事件源)

💡 完整成员列表及详细说明请参考:视图


常用操作速查

操作属性/方法示例
设置标题文本标题单选框1.标题 = "男"
设置选中状态选中单选框1.选中 = 真
设置分组名称(需同组相同)置属性值("name", 组名)单选框1.置属性值("name", "gender")
禁用/启用组件禁用单选框1.禁用 = 真
设置选中状态改变回调置选中状态被改变回调(回调函数)单选框1.置选中状态被改变回调((源对象, 新选中状态) => { ... })

样式美化参考

单选框的外观可通过继承的视图属性以及 CSS 类进行美化:

  • 整体容器:通过 宽度高度背景颜色边框边框圆角 等属性美化。
  • 字体样式:通过 字体大小(建议 "14px")、文本颜色 控制标题文字样式。
  • 内边距:使用 内边距(如 "4px 8px")控制内容与边框的距离。
  • 选中状态:可通过 CSS 类自定义选中时的背景色、边框色。

样式变体示例:

变体属性组合
圆形单选框(默认)边框圆角 = "50%"宽度 = 20高度 = 20
方形单选框边框圆角 = "4px"宽度 = 20高度 = 20
大尺寸单选框宽度 = 24高度 = 24字体大小 = "16px"
选中状态样式背景颜色 = "#1890ff"边框 = "2px solid #1890ff"
未选中状态样式背景颜色 = "#ffffff"边框 = "1px solid #d9d9d9"
禁用状态样式背景颜色 = "#f5f5f5"边框 = "1px solid #d9d9d9"透明度 = "0.6"
水平布局(多个单选框并排)显示模式 = "行内块"外边距右 = "16px"
垂直布局(多个单选框堆叠)显示模式 = "块级"外边距底 = "8px"

单选框本身的圆形/方形由组件内部实现,通过 边框圆角 等属性可能无法直接改变形状,建议使用 CSS 类自定义。


基础示例

创建两个单选框(男/女),默认选中“男”,并设置分组名称 "gender"

' 创建男单选框
变量 单选框_男 = 创建 单选框()
单选框_男.左边 = 50
单选框_男.顶边 = 50
单选框_男.标题 = "男"
单选框_男.选中 = 真
单选框_男.置属性值("name", "gender")  ' 分组名称
添加组件(单选框_男)

' 创建女单选框
变量 单选框_女 = 创建 单选框()
单选框_女.左边 = 50
单选框_女.顶边 = 80
单选框_女.标题 = "女"
单选框_女.选中 = 假
单选框_女.置属性值("name", "gender")
添加组件(单选框_女)

' 绑定选中改变事件(可只绑定其中一个,事件会携带新状态)
单选框_男.置选中状态被改变回调((源对象, 新选中状态) => {
    如果(新选中状态)
        弹出提示("选择了:男")
    结束 如果
})

单选框_女.置选中状态被改变回调((源对象, 新选中状态) => {
    如果(新选中状态)
        弹出提示("选择了:女")
    结束 如果
})

综合示例:支付方式选择

本示例展示一个支付方式选择界面,包含三种支付方式(微信、支付宝、银行卡),选中后显示对应图标和说明,并实时更新支付方式。

' ========== 创建面板 ==========
变量 支付面板 = 创建 卡片框()
支付面板.左边 = 50
支付面板.顶边 = 50
支付面板.宽度 = 360
支付面板.标题 = "💳 选择支付方式"
支付面板.边框 = "1px solid #e8e8e8"
支付面板.边框圆角 = "12px"
支付面板.内边距 = "16px"
添加组件(支付面板)

' 提示标签
变量 提示标签 = 创建 标签()
提示标签.文本 = "请选择一种支付方式:"
提示标签.字体大小 = "14px"
提示标签.文本颜色 = "#666"
提示标签.内边距 = "0 0 12px 0"
支付面板.添加组件(提示标签)

' 方式1:微信支付
变量 支付_微信 = 创建 单选框()
支付_微信.标题 = "微信支付"
支付_微信.选中 = 真
支付_微信.置属性值("name", "payment")
支付_微信.内边距 = "6px 0"
支付面板.添加组件(支付_微信)

' 方式2:支付宝
变量 支付_支付宝 = 创建 单选框()
支付_支付宝.标题 = "支付宝"
支付_支付宝.选中 = 假
支付_支付宝.置属性值("name", "payment")
支付_支付宝.内边距 = "6px 0"
支付面板.添加组件(支付_支付宝)

' 方式3:银行卡
变量 支付_银行卡 = 创建 单选框()
支付_银行卡.标题 = "银行卡"
支付_银行卡.选中 = 假
支付_银行卡.置属性值("name", "payment")
支付_银行卡.内边距 = "6px 0"
支付面板.添加组件(支付_银行卡)

' 显示当前选择的标签
变量 选择标签 = 创建 标签()
选择标签.文本 = "当前选择:微信支付"
选择标签.字体大小 = "16px"
选择标签.字体粗细 = "bold"
选择标签.文本颜色 = "#1890ff"
选择标签.内边距 = "12px 0 0"
支付面板.添加组件(选择标签)

' ========== 绑定回调事件 ==========
' 定义统一处理函数
函数 更新支付方式(源对象, 新选中状态)
    如果(新选中状态)
        变量 文本 = 源对象.标题
        选择标签.文本 = "当前选择:" + 文本
        弹出提示("已切换至:" + 文本)
    结束 如果
结束 函数

支付_微信.置选中状态被改变回调(更新支付方式)
支付_支付宝.置选中状态被改变回调(更新支付方式)
支付_银行卡.置选中状态被改变回调(更新支付方式)

属性详解

标题

  • 类型: 文本型
  • 说明: 设置或获取单选框右侧显示的标题文本,用于描述选项内容。

选中

  • 类型: 逻辑型
  • 说明: 设置或获取当前单选框是否被选中。当设为 时,该单选框变为选中状态,同组其他单选框自动取消选中(依赖于分组名称)。

禁用

  • 类型: 逻辑型
  • 说明: 设置或获取是否禁用单选框。禁用后,用户无法点击切换,样式变灰。默认为

函数详解

置选中状态被改变回调(回调函数)

  • 功能: 设置当单选框的选中状态发生变化时的回调函数。回调会在用户点击切换(或通过代码修改 选中)时触发。
  • 参数: 回调函数,格式为 (源对象, 新选中状态) => { ... }
    • 源对象:触发事件的单选框组件本身。
    • 新选中状态:逻辑型, 表示变为选中, 表示变为未选中。
  • 返回值: 无。
  • 示例:
    单选框1.置选中状态被改变回调((源对象, 新选中状态) => {
        如果(新选中状态)
            调试输出("选中:" + 源对象.标题)
        结束 如果
    })
    

事件说明

选中状态被改变(源对象, 新选中状态)

  • 功能:置选中状态被改变回调 等效,适用于设计文件(.spldg)中定义的组件。
  • 示例:
    事件 单选框1.选中状态被改变(源对象, 新选中状态)
        调试输出("选中状态:" + 新选中状态)
    结束 事件
    

⚠️ 注意事项

  1. 分组互斥:要实现单选框的互斥效果,必须为同一组的单选框设置相同的 name 属性。可通过 置属性值("name", "组名") 或直接设置 名称 属性(如果组件支持)来实现。若 name 不同,它们不会互斥,可以同时选中多个。
  2. 选中状态自动管理:当同一个 name 组中有一个单选框被选中时,其他同 name 的单选框会自动取消选中,无需手动处理。
  3. 初始选中:建议在程序启动时为组内一个单选框设置 选中 = 真,否则组内可能全部未选中,用户交互时第一个被点击的会选中。
  4. 禁用状态禁用 = 真 的单选框不会响应用户点击,但依然可以显示选中状态。
  5. 回调触发置选中状态被改变回调 会在选中状态变化时触发,包括用户点击和代码修改。注意避免在回调中反复修改 选中 导致死循环。
  6. 标题样式:标题文本紧挨着单选框,可通过继承的 字体大小文本颜色字体粗细 控制其样式。
  7. 与多选框的区别:单选框用于互斥选择(只能选一个),多选框用于多选(可同时选多个)。

相关文档

  • 文档框架基础类_视图 —— 视图类提供的所有通用属性和方法
  • 文档文本类组件_多选框 —— 多选组件
  • 文档文本类组件_标签 —— 配合显示说明文字
  • 文档轻语言网站:轻语言语法速查 —— 拉姆达表达式、条件判断等
  • 文档综合演示:支付方式选择 —— 实际应用示例