博主原文链接:https://www.yourmetaverse.cn/nlp/353/
使用Gradio创建交互式复选框组件
在本篇博客中,我们将介绍Gradio库中的Checkbox模块,以及它的change、input和select方法。Checkbox模块用于创建可设置为“True”或“False”的复选框。
首先,让我们来看一下Checkbox模块的参数及其功能:
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
value | bool | Callable | False | 复选框的默认值。如果是可调用对象,函数会在应用加载时调用,以设置组件的初始值。 |
label | str | None | None | 在界面中显示的组件名称。 |
info | str | None | None | 组件的额外描述信息。 |
every | float | None | None | 如果value 是可调用对象,在客户端连接打开时,每隔指定时间运行函数一次。只有在启用了队列的情况下才有效。事件可以通过组件的.load_event 属性进行访问(例如,用于取消事件)。 |
show_label | bool | True | 如果为True,将显示标签。 |
container | bool | True | 如果为True,将在容器中放置组件,为边框提供一些额外的内边距。 |
scale | int | None | None | 相对于同一行中相邻组件的宽度比例。例如,如果组件A的scale=2,组件B的scale=1,那么组件A的宽度将是组件B的两倍。应为整数。 |
min_width | int | 160 | 最小像素宽度,如果屏幕空间不足以满足此值,则换行。如果某个scale值导致该组件比min_width更窄,则首先遵守min_width参数。 |
interactive | bool | None | None | 如果为True,该复选框可以被选中;如果为False,将禁用选中。如果未提供,将根据组件是用作输入还是输出进行推断。 |
visible | bool | True | 如果为False,组件将被隐藏。 |
elem_id | str | None | None | 可选的字符串,用作该组件在HTML DOM中的id。可用于定位CSS样式。 |
elem_classes | list[str] | str | None | None | 可选的字符串列表,用作该组件在HTML DOM中的类。可用于定位CSS样式。 |
Checkbox模块除了具有上述参数之外,还提供了change、input和select方法用于事件监听和处理。下面是这些方法的详细介绍:
1. change方法:
change方法在组件的值发生变化时触发,无论
是因为用户输入(例如,用户在文本框中输入)还是因为函数更新(例如,图像从事件触发的输出中接收到值)。这个方法适用于在Gradio Blocks中使用该组件时。
参数:
- fn:函数,被封装为接口的函数,通常是一个机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回一个值或一个值的元组,其中元组的每个元素对应一个输出组件。
- inputs:组件或组件列表,用作输入。如果函数不需要输入,这应该是一个空列表。
- outputs:组件或组件列表,用作输出。如果函数不返回输出,这应该是一个空列表。
- 其他参数:例如api_name、status_tracker等,用于定义接口的其他属性。
2. input方法:
input方法在用户改变组件的值时触发,适用于在Gradio Blocks中使用该组件时。
参数:
- fn:函数,被封装为接口的函数,通常是一个机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回一个值或一个值的元组,其中元组的每个元素对应一个输出组件。
- inputs:组件或组件列表,用作输入。如果函数不需要输入,这应该是一个空列表。
- outputs:组件或组件列表,用作输出。如果函数不返回输出,这应该是一个空列表。
- 其他参数:例如api_name、status_tracker等,用于定义接口的其他属性。
3. select方法:
select方法在用户选择或取消选择复选框时触发。使用事件数据gradio.SelectData携带value
(复选框的标签)和selected
(复选框的状态)。详细使用方法可以参考EventData文档。
参数:
- fn:函数,被封装为接口的函数,通常是一个机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回一个值或一个值的元组,其中元组的每个元素对应一个输出组件。
- inputs:组件或组件列表,用作输入。如果函数不需要输入,这应该是一个空列表。
- outputs:组件或组件列表,用作输出。如果函数不返回输出,这应该是一个空列表。
- 其他参数:例如api_name、status_tracker等,用于定义接口的其他属性。
通过使用Gradio的Checkbox模块以及其change、input和select方法,我们可以轻松创建交互式的复选框组件,并根据用户的操作进行相应的处理。