函数签名[source] | |
---|---|
st.selectbox(标签, 选项, 索引=0, 格式函数=特殊内部函数, 键=无, 帮助=无, 更改时=无, 参数=无, 关键字参数=无, *, 占位符="选择一个选项", 禁用=假, 标签可见性="可见") | |
参数 | |
label (str) | 一个简短的标签,向用户解释这个选择小部件的用途。 标签可以选择性地包含以下类型的GitHub风格的Markdown:粗体、斜体、删除线、内联代码、链接和图片。图片显示为图标,最大高度等于字体高度。 不支持的Markdown元素会被解包,因此只有它们的子元素(文本内容)会呈现。通过反斜杠转义不支持的元素,将其显示为字面字符。例如, "1\. 不是一个有序列表"。 有关其他支持的Markdown指令,请参见st.markdown的body参数。 出于可访问性原因,您永远不应设置空标签,但如有需要,可以使用label_visibility隐藏它。将来,我们可能会通过引发异常来禁止空标签。 |
options (Iterable) | 选择选项的标签在Iterable中。这可以是list、set,或任何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,
)
还有问题吗?
我们的 论坛 充满了有用的信息和Streamlit专家。