显示一个单选按钮小部件。

函数签名[source]

st.radio(label, 选项, index=0, format_func=special_internal_function, key=None, 帮助=None, on_change=None, args=None, kwargs=None, *, disabled=False, horizontal=False, captions=None, label_visibility="visible")

参数

label (str)

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

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

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

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

options (Iterable)

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

标签可以包含label参数中描述的markdown, 并且默认情况下将在内部转换为str。

index (int or None)

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

format_func (function)

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

key (str or int)

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

help (str)

一个可选的小提示,显示在小部件标签旁边。 只有当label_visibility="visible"时,Streamlit才会显示这个小提示。

on_change (callable)

当此单选按钮的值发生变化时调用的可选回调函数。

args (tuple)

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

kwargs (dict)

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

disabled (bool)

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

horizontal (bool)

一个可选的布尔值,用于将单选按钮组水平排列。 默认值为 false(垂直排列按钮)。

captions (iterable of str or None)

显示在每个单选按钮下方的标题列表。如果为 None(默认值),则不显示标题。

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

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

返回

(any)

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

示例

import streamlit as st

genre = st.radio(
    "What's your favorite movie genre",
    [":rainbow[Comedy]", "***Drama***", "Documentary :movie_camera:"],
    captions=[
        "Laugh out loud.",
        "Get the popcorn.",
        "Never stop learning.",
    ],
)

if genre == ":rainbow[Comedy]":
    st.write("You selected comedy.")
else:
    st.write("You didn't select comedy.")

要初始化一个空的单选小部件,请使用None作为索引值:

import streamlit as st

genre = st.radio(
    "What's your favorite movie genre",
    [":rainbow[Comedy]", "***Drama***", "Documentary :movie_camera:"],
    index=None,
)

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

小部件可以通过label_visibility参数自定义如何隐藏它们的标签。如果设置为"hidden",标签不会显示,但在小部件上方仍然保留空白的空间(等同于label="")。如果设置为"collapsed",标签和空间都会被移除。默认值为"visible"。单选按钮也可以通过disabled参数禁用,并通过horizontal参数水平排列:

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 st.session_state.horizontal = False col1, col2 = st.columns(2) with col1: st.checkbox("Disable radio widget", key="disabled") st.checkbox("Orient radio options horizontally", key="horizontal") with col2: st.radio( "Set label visibility 👇", ["visible", "hidden", "collapsed"], key="visibility", label_visibility=st.session_state.visibility, disabled=st.session_state.disabled, horizontal=st.session_state.horizontal, )

查看我们的视频,了解如何使用Streamlit的核心功能之一,单选按钮!🔘

在下面的视频中,我们将更进一步,学习如何结合按钮复选框和单选按钮!

forum

还有问题吗?

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