单选复选组件
单选复选组件用于在预定义的选项中进行单选或多选,包括单选框组和复选框组。
单选框组 (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 | 是否禁用 | boolean | false |
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 | 是否禁用 | boolean | false |
单选框与复选框的区别
单选框组 (RadioGroup)
- 只能选择一个选项
- 使用
choices
参数定义选项列表 default
参数为字符串,表示默认选中的选项
复选框组 (BlockCheckbox)
- 可以选择多个选项
- 使用
choices
参数定义选项列表 default
参数为列表,表示默认选中的选项列表- 可以通过
min
和max
控制选择数量的限制
使用场景
单选框组
适用于:
- 选择性别(男/女)
- 选择状态(开启/关闭)
- 选择优先级(高/中/低)
- 选择模式(简单/高级)
复选框组
适用于:
- 选择多个兴趣爱好
- 选择多个功能模块
- 选择多个处理选项
- 选择多个权限
最佳实践
- 合理设置默认选项,避免用户困惑
- 单选框组的选项不宜过多,通常3-5个为宜
- 复选框组如果选项较多,可以考虑使用
direction="vertical"
垂直排列 - 为选项提供清晰的描述,使用简洁的文本
- 如果选项数量过多,考虑使用下拉选择框替代
验证与交互
单选框验证
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, ""