显示一个按钮小部件。

函数签名[source]

st.button(label, key=None, help=None, on_click=None, args=None, kwargs=None, *, type="secondary", icon=None, disabled=False, use_container_width=False)

参数

label (str)

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

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

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

key (str or int)

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

help (str)

一个可选的工具提示,当鼠标悬停在按钮上时会显示。

on_click (callable)

当点击此按钮时调用的可选回调函数。

args (tuple)

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

kwargs (dict)

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

type ("primary", "secondary", or "tertiary")

一个可选的字符串,用于指定按钮类型。可以是以下之一:

  • "primary": 按钮的背景是应用程序的主色调,用于额外的强调。
  • "secondary" (默认): 按钮的背景与应用程序的背景颜色协调,用于正常的强调。
  • "tertiary": 按钮是纯文本,没有边框或背景,用于微妙的强调。

icon (str or None)

一个可选的emoji或图标,显示在按钮标签旁边。如果iconNone(默认),则不显示图标。如果icon是一个 字符串,以下选项有效:

  • 一个单字符的emoji。例如,你可以设置icon="🚨"icon="🔥"。不支持emoji短代码。

  • 来自Material Symbols库(圆角风格)的图标,格式为 ":material/icon_name:",其中"icon_name"是图标名称 的蛇形命名。

    例如,icon=":material/thumb_up:"将显示 Thumb Up图标。在Material Symbols 字体库中查找更多图标。

disabled (bool)

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

use_container_width (bool)

是否将按钮的宽度扩展到其父容器的宽度。 如果 use_container_widthFalse(默认),Streamlit 会调整按钮的大小以适应其内容。如果 use_container_widthTrue,按钮的宽度将与其父容器的宽度匹配。

在这两种情况下,如果按钮的内容比父容器宽,内容将换行。

返回

(bool)

如果在上次运行应用程序时点击了按钮,则为True,否则为False。

示例

示例1:自定义按钮类型

import streamlit as st

st.button("Reset", type="primary")
if st.button("Say hello"):
    st.write("Why hello there")
else:
    st.write("Goodbye")

if st.button("Aloha", type="tertiary"):
    st.write("Ciao")

示例 2:为按钮添加图标

虽然你可以通过Markdown向按钮添加图标,但icon参数是一个方便且一致的替代方案。

import streamlit as st

left, middle, right = st.columns(3)
if left.button("Plain button", use_container_width=True):
    left.markdown("You clicked the plain button.")
if middle.button("Emoji button", icon="😃", use_container_width=True):
    middle.markdown("You clicked the emoji button.")
if right.button("Material button", icon=":material/mood:", use_container_width=True):
    right.markdown("You clicked the Material button.")

虽然按钮是最简单的输入小部件,但按钮通常与st.session_state的使用密切相关。请查看我们关于按钮行为和示例的高级指南。

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

在下面的视频中,我们将更进一步,学习如何结合buttoncheckboxradio button

forum

还有问题吗?

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