Skip to content

单选复选组件

单选复选组件用于在预定义的选项中进行单选或多选,包括单选框组和复选框组。

单选框组 (RadioGroup)

单选框组用于从多个选项中只选择一个选项。

基本用法

python
gui_config.add_argument(
    "--radio",
    metavar="单选框组",
    help="只能选择一个选项",
    choices=["单选1", "单选2", "单选3"],
    default="单选1",
    widget="RadioGroup",
    gooey_options={
        "direction": "horizontal",  # 方向 vertical/horizontal
        "size": "large",  # 大小 large/default/small
        "disabled": False,  # 是否禁用
        "textColor": "#ffffff",  # 文本颜色
        "fill": "#409EFF"  # 填充色
    }
)

属性

属性名说明类型默认值
direction排列方向string'horizontal'
size单选框大小string'default'
disabled是否禁用booleanfalse
textColor文本颜色string'#ffffff'
fill填充色string'#409EFF'

复选框组 (BlockCheckbox)

复选框组用于从多个选项中选择多个选项。

基本用法

python
gui_config.add_argument(
    "--checkbox",
    metavar="复选框组",
    help="可以选择多个选项",
    choices=["复选1", "复选2", "复选3"],
    default=["复选1", "复选2"],
    widget="BlockCheckbox",
    gooey_options={
        "direction": "vertical",  # 方向 vertical/horizontal
        "min": 1,  # 最少选择数量
        "max": 2,  # 最多选择数量
        "size": "large",  # 大小
        "disabled": False  # 是否禁用
    }
)

属性

属性名说明类型默认值
direction排列方向string'vertical'
min最少选择数量number-
max最多选择数量number-
size复选框大小string'default'
disabled是否禁用booleanfalse

单选框与复选框的区别

  1. 单选框组 (RadioGroup)

    • 只能选择一个选项
    • 使用 choices 参数定义选项列表
    • default 参数为字符串,表示默认选中的选项
  2. 复选框组 (BlockCheckbox)

    • 可以选择多个选项
    • 使用 choices 参数定义选项列表
    • default 参数为列表,表示默认选中的选项列表
    • 可以通过 minmax 控制选择数量的限制

使用场景

单选框组

适用于:

  • 选择性别(男/女)
  • 选择状态(开启/关闭)
  • 选择优先级(高/中/低)
  • 选择模式(简单/高级)

复选框组

适用于:

  • 选择多个兴趣爱好
  • 选择多个功能模块
  • 选择多个处理选项
  • 选择多个权限

最佳实践

  1. 合理设置默认选项,避免用户困惑
  2. 单选框组的选项不宜过多,通常3-5个为宜
  3. 复选框组如果选项较多,可以考虑使用 direction="vertical" 垂直排列
  4. 为选项提供清晰的描述,使用简洁的文本
  5. 如果选项数量过多,考虑使用下拉选择框替代

验证与交互

单选框验证

python
def validate_radio(value):
    """验证单选框选择"""
    valid_options = ["单选1", "单选2", "单选3"]
    if value not in valid_options:
        return False, f"请选择有效的选项: {', '.join(valid_options)}"
    return True, ""

复选框验证

python
def validate_checkbox(values):
    """验证复选框选择"""
    valid_options = ["复选1", "复选2", "复选3"]
    if not values:
        return False, "请至少选择一个选项"
    for value in values:
        if value not in valid_options:
            return False, f"请选择有效的选项: {', '.join(valid_options)}"
    if len(values) < 1:
        return False, "请至少选择1个选项"
    if len(values) > 2:
        return False, "最多只能选择2个选项"
    return True, ""

基于MIT许可证发布