文章目录
- 一、提示框分组(CALLOUTS)
-
- 1.1 `st.success`:成功提示框
-
- 功能说明
- 核心参数
- 代码示例
- 1.2 `st.info`:信息提示框
-
- 功能说明
- 核心参数
- 代码示例
- 1.3 `st.warning`:警告提示框
-
- 功能说明
- 核心参数
- 代码示例
- 1.4 `st.error`:错误提示框
-
- 功能说明
- 核心参数
- 代码示例
- 1.5 `st.exception`:异常堆栈弹窗
-
- 功能说明
- 核心参数
- 代码示例
- 二、其他状态组件分组(OTHER)
-
- 2.1 `st.progress`:进度条
-
- 功能说明
- 核心参数
- 代码示例
- 2.2 `st.spinner`:加载转圈指示器
-
- 功能说明
-
- 核心参数
- 代码示例
- 2.3 `st.status`:任务状态折叠面板
-
- 功能说明
- 核心参数
- 常用方法
- 代码示例
- 2.4 `st.toast`:轻量弹出通知
-
- 功能说明
- 核心参数
- 代码示例
- 2.5 `st.balloons`:气球庆祝动画
-
- 功能说明
- 代码示例
- 2.6 `st.snow`:雪花庆祝动画
-
- 功能说明
- 代码示例
一、提示框分组(CALLOUTS)
1.1 st.success:成功提示框
功能说明
绿色背景的成功提示气泡,用于告知用户操作执行成功、任务完成等正向结果。
核心参数
| body | 提示框内展示的文字内容 |
| icon | 自定义前置图标,支持单个Emoji、Material图标,不传则无图标 |
代码示例
import streamlit as st
st.success("文件上传成功!", icon="✅")

1.2 st.info:信息提示框
功能说明
浅蓝色背景的信息提示气泡,用于展示说明、指引、补充提示等中性信息。
核心参数
| body | 提示框文字内容 |
| icon | 自定义前置图标,支持Emoji、Material图标 |
代码示例
import streamlit as st
st.info("文件最大支持200MB,仅支持CSV格式", icon="ℹ️")

1.3 st.warning:警告提示框
功能说明
黄色背景的警告提示气泡,用于提醒用户潜在风险、不规范操作、数据缺失等问题。
核心参数
| body | 警告文字内容 |
| icon | 自定义前置图标 |
代码示例
import streamlit as st
st.warning("当前数据未保存,刷新页面会丢失修改", icon="⚠️")

1.4 st.error:错误提示框
功能说明
红色背景的错误提示气泡,用于告知用户操作失败、校验不通过、运行报错等负面结果。
核心参数
| body | 错误描述文字 |
| icon | 自定义前置图标 |
代码示例
import streamlit as st
st.error("登录失败:账号或密码错误", icon="🚨")

1.5 st.exception:异常堆栈弹窗
功能说明
专门用于捕获并展示Python程序异常,自动渲染完整报错堆栈信息,方便调试定位代码问题。
核心参数
- exception:捕获到的Python Exception异常对象
代码示例
import streamlit as st
try:
1 / 0
except Exception as e:
st.exception(e)

二、其他状态组件分组(OTHER)
2.1 st.progress:进度条
功能说明
可视化数值进度条,用于展示文件上传、循环计算、数据处理等任务的完成百分比,支持动态更新进度与说明文字。
核心参数
| value | 进度数值:0~100 整数 / 0.0~1.0 浮点数 |
| text | 进度条上方的说明文字,支持Markdown |
代码示例
import streamlit as st
import time
bar = st.progress(0, text="数据处理中…")
for i in range(100):
time.sleep(0.01)
bar.progress(i + 1, text=f"已完成 {i+1}%")
bar.empty() # 完成后清空进度条

2.2 st.spinner:加载转圈指示器
功能说明
代码块运行期间显示旋转加载图标与提示文字,代码执行完毕自动消失,适合短时间等待任务。
核心参数
- text:加载时展示的提示文字,默认In progress…
代码示例
import streamlit as st
import time
with st.spinner("正在加载数据,请稍候…"):
time.sleep(5) # 模拟耗时操作
st.success("数据加载完成!")

2.3 st.status:任务状态折叠面板
功能说明
可展开/收起的任务日志面板,自带运行、完成、错误三种状态图标,面板内可写入多行运行日志,适合长时间批量任务。
核心参数
| label | 面板标题,支持Markdown |
| expanded | 初始化是否展开日志详情,默认False |
| state | 初始状态:running转圈 / complete对勾 / error错误叉号 |
常用方法
.update(label=…, state=…, expanded=…):运行中动态修改面板状态、标题
代码示例
import streamlit as st
import time
with st.status("文件下载中…", expanded=True) as task:
st.write("检索云端资源…")
time.sleep(2)
st.write("解析文件链接")
time.sleep(1)
task.update(label="下载全部完成", state="complete", expanded=False)

2.4 st.toast:轻量弹出通知
功能说明
页面右下角弹出的轻量消息弹窗,自动4秒后消失,不会打断用户当前操作,适合保存成功、简易提醒等轻量反馈。
核心参数
| body | 通知文字,支持Markdown |
| icon | 自定义前置图标,支持Emoji、Material图标 |
代码示例
import streamlit as st
if st.button("保存修改"):
st.toast("表单保存成功!", icon="🎉")
2.5 st.balloons:气球庆祝动画
功能说明
全屏飘落彩色气球的全屏庆祝动画,无参数,用于任务圆满完成、提交成功等强正向反馈场景。
代码示例
import streamlit as st
if st.button("提交答卷"):
st.balloons()
st.success("恭喜你完成全部答题!")

2.6 st.snow:雪花庆祝动画
功能说明
全屏飘落白色雪花的全屏庆祝动画,无参数,节日场景、重大任务完成时使用。
代码示例
import streamlit as st
if st.button("领取年终奖励"):
st.snow()
st.info("奖励已发放至你的账户!")

