显示一个选择小部件。

函数签名[source]

st.selectbox(标签, 选项, 索引=0, 格式函数=特殊内部函数, 键=无, 帮助=无, 更改时=无, 参数=无, 关键字参数=无, *, 占位符="选择一个选项", 禁用=假, 标签可见性="可见")

参数

label (str)

一个简短的标签,向用户解释这个选择小部件的用途。 标签可以选择性地包含以下类型的GitHub风格的Markdown:粗体、斜体、删除线、内联代码、链接和图片。图片显示为图标,最大高度等于字体高度。

不支持的Markdown元素会被解包,因此只有它们的子元素(文本内容)会呈现。通过反斜杠转义不支持的元素,将其显示为字面字符。例如, "1\. 不是一个有序列表"

有关其他支持的Markdown指令,请参见st.markdownbody参数。

出于可访问性原因,您永远不应设置空标签,但如有需要,可以使用label_visibility隐藏它。将来,我们可能会通过引发异常来禁止空标签。

options (Iterable)

选择选项的标签在Iterable中。这可以是listset,或任何st.dataframe支持的内容。如果options类似于数据框,将使用第一列。默认情况下,每个标签将在内部转换为str

index (int)

首次渲染时预选选项的索引。如果为None,将初始化为空并返回None,直到用户选择一个选项。默认为0(第一个选项)。

format_func (function)

用于修改选项显示的函数。它接收原始选项作为参数,并应输出该选项显示的标签。这对命令的返回值没有影响。

key (str or int)

一个可选的字符串或整数,用作小部件的唯一键。 如果省略,将根据小部件的内容生成一个键。 任何两个小部件都不能有相同的键。

help (str)

一个可选的工具提示,显示在小部件标签旁边。 Streamlit 仅在 label_visibility="visible" 时显示工具提示。

on_change (callable)

当此选择框的值发生变化时调用的可选回调函数。

args (tuple)

传递给回调函数的可选参数元组。

kwargs (dict)

一个可选的字典,用于传递给回调函数。

placeholder (str)

当没有选项被选中时显示的字符串。 默认为“选择一个选项”。

disabled (bool)

一个可选的布尔值,如果设置为True,则禁用选择框。 默认值为False

label_visibility ("visible", "hidden", or "collapsed")

标签的可见性。默认是"visible"。如果这是"hidden",Streamlit会显示一个空的占位符而不是标签,这有助于保持小部件与其他小部件对齐。如果这是"collapsed",Streamlit不会显示标签或占位符。

返回

(any)

选中的选项,如果没有选中任何选项则为None

示例

import streamlit as st

option = st.selectbox(
    "How would you like to be contacted?",
    ("Email", "Home phone", "Mobile phone"),
)

st.write("You selected:", option)

要初始化一个空的选择框,请使用None作为索引值:

import streamlit as st

option = st.selectbox(
    "How would you like to be contacted?",
    ("Email", "Home phone", "Mobile phone"),
    index=None,
    placeholder="Select contact method...",
)

st.write("You selected:", option)

选择小部件可以使用label_visibility参数自定义如何隐藏其标签。如果设置为"hidden",标签不会显示,但在小部件上方仍保留空白空间(相当于label="")。如果设置为"collapsed",标签和空间都会被移除。默认值为"visible"。选择小部件还可以通过disabled参数禁用:

import streamlit as st # Store the initial value of widgets in session state if "visibility" not in st.session_state: st.session_state.visibility = "visible" st.session_state.disabled = False col1, col2 = st.columns(2) with col1: st.checkbox("Disable selectbox widget", key="disabled") st.radio( "Set selectbox label visibility 👉", key="visibility", options=["visible", "hidden", "collapsed"], ) with col2: option = st.selectbox( "How would you like to be contacted?", ("Email", "Home phone", "Mobile phone"), label_visibility=st.session_state.visibility, disabled=st.session_state.disabled, )
forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。