函数签名[source] | |
---|---|
st.segmented_control(label, options, *, selection_mode="single", default=None, format_func=None, key=None, help=None, on_change=None, args=None, kwargs=None, disabled=False, label_visibility="visible") | |
参数 | |
label (str) | 一个简短的标签,向用户解释这个小部件的用途。 标签可以选择性地包含以下类型的GitHub风格的Markdown:粗体、斜体、删除线、内联代码、链接和图片。图片显示为图标,最大高度等于字体高度。 不支持的Markdown元素会被解包,因此只有它们的子元素(文本内容)会呈现。通过反斜杠转义不支持的元素,将其显示为字面字符。例如, "1\. 不是一个有序列表"。 有关其他支持的Markdown指令,请参见st.markdown的body参数。 出于可访问性原因,您永远不应设置空标签,但您可以使用label_visibility在需要时隐藏它。将来,我们可能会通过引发异常来禁止空标签。 |
options (Iterable of V) | 选择选项的标签在一个Iterable中。这可以是一个 list、set,或者任何st.dataframe支持的内容。如果 options是类似数据框的,将使用第一列。每个 标签默认情况下将在内部转换为str。 |
selection_mode ("single" or "multi") | 小部件的选择模式。如果这是"single" (默认),只能选择一个选项。如果这是"multi", 可以选择多个选项。 |
默认值 (Iterable of V, V, or None) | 小部件首次渲染时的值。如果 selection_mode 是 multi,这可以是一个值列表、单个值或 None。如果 selection_mode 是 "single",这可以是单个值或 None。 |
format_func (function) | 用于修改选项显示的函数。它接收原始选项作为参数,并应输出该选项的显示标签。这对命令的返回值没有影响。 |
key (str or int) | 一个可选的字符串或整数,用作小部件的唯一键。 如果省略,将根据小部件的内容生成一个键。 相同类型的多个小部件不能共享相同的键。 |
help (str) | 一个可选的小提示,显示在小部件标签旁边。 只有当label_visibility="visible"时,Streamlit才会显示这个小提示。 |
on_change (callable) | 当此小部件的值发生变化时调用的可选回调函数。 |
args (tuple) | 传递给回调函数的可选参数元组。 |
kwargs (dict) | 一个可选的kwargs字典,用于传递给回调函数。 |
disabled (bool) | 一个可选的布尔值,如果设置为True,则禁用该小部件。 默认值为False。 |
label_visibility ("visible", "hidden", or "collapsed") | 标签的可见性。默认是"visible"。如果这是"hidden",Streamlit会显示一个空白的间隔符而不是标签,这有助于保持小部件与其他小部件对齐。如果这是"collapsed",Streamlit不会显示标签或间隔符。 |
返回 | |
(list of V, V, or None) | 如果 selection_mode 是 multi,这是一个选中的选项列表或空列表。如果 selection_mode 是 "single",这是一个选中的选项或 None。 |
示例
示例 1:多选分段控件
显示一个多选分段控制小部件,并展示选择:
import streamlit as st options = ["North", "East", "South", "West"] selection = st.segmented_control( "Directions", options, selection_mode="multi" ) st.markdown(f"Your selected options: {selection}.")示例2:带有图标的单选分段控件
显示一个带有图标的单选分段控制小部件:
import streamlit as st option_map = { 0: ":material/add:", 1: ":material/zoom_in:", 2: ":material/zoom_out:", 3: ":material/zoom_out_map:", } selection = st.segmented_control( "Tool", options=option_map.keys(), format_func=lambda option: option_map[option], selection_mode="single", ) st.write( "Your selected option: " f"{None if selection is None else option_map[selection]}" )
还有问题吗?
我们的 论坛 充满了有用的信息和Streamlit专家。