Skip to content

滑块组件 (SliderField)

滑块组件用于在一个固定区间内选择一个值。

基本用法

python
gui_config.add_argument(
    "--slider",
    metavar="滑块组件",
    help="拖动滑块选择值",
    default=50,
    widget="SliderField",
    gooey_options={
        "min": 0,  # 最小值
        "max": 100,  # 最大值
        "step": 1,  # 步长
        "showInput": True,  # 是否显示输入框
        "showStops": False,  # 是否显示间断点
        "showTooltip": True,  # 是否显示提示
        "range": False,  # 是否为范围选择
        "vertical": False,  # 是否垂直模式
        "height": "200px",  # 高度
        "marks": {0: "0%", 25: "25%", 50: "50%", 75: "75%", 100: "100%"},  # 标记点
        "disabled": False,  # 是否禁用
        "size": "large"
    }
)

属性

属性名说明类型默认值
min最小值number0
max最大值number100
step步长number1
showInput是否显示输入框booleantrue
showStops是否显示间断点booleanfalse
showTooltip是否显示提示booleantrue
range是否为范围选择booleanfalse
vertical是否垂直模式booleanfalse
height高度(垂直模式时)string-
marks标记点object-
disabled是否禁用booleanfalse
size滑块大小string'default'

范围选择

设置 rangetrue 时,滑块变为范围选择模式,可以同时选择起始值和结束值:

python
gui_config.add_argument(
    "--price_range",
    metavar="价格范围",
    help="选择价格范围",
    default=[20, 80],  # 注意:范围选择时默认值为数组
    widget="SliderField",
    nargs="+",  # 接收多个值
    gooey_options={
        "min": 0,
        "max": 100,
        "step": 5,
        "range": True,  # 开启范围选择
        "marks": {0: "0元", 25: "25元", 50: "50元", 75: "75元", 100: "100元"}
    }
)

标记点

通过 marks 属性可以在滑块上设置标记点,帮助用户理解值的含义:

python
marks = {
    0: "无",
    25: "低",
    50: "中",
    75: "高",
    100: "极高"
}

垂直滑块

设置 verticaltrue 时,滑块变为垂直显示模式:

python
gui_config.add_argument(
    "--volume",
    metavar="音量控制",
    help="调节音量大小",
    default=30,
    widget="SliderField",
    gooey_options={
        "min": 0,
        "max": 100,
        "vertical": True,  # 垂直模式
        "height": "200px",  # 高度
        "showInput": False
    }
)

使用场景

滑块组件适用于在连续区间内选择数值的场景,例如:

  • 音量控制
  • 亮度调节
  • 透明度设置
  • 数量调节
  • 百分比设置
  • 范围筛选

最佳实践

  1. 在滑块两端显示最小值和最大值,帮助用户理解范围
  2. 对于大范围的值,可以使用较大的步长简化选择
  3. 使用标记点(marks)提供视觉参考,帮助用户理解值的含义
  4. 对于精确输入,启用 showInput 选项,允许用户直接输入值
  5. 对于范围选择,确保同时设置 range: truenargs: "+"

基于MIT许可证发布