插入一个状态容器以显示长时间运行任务的输出。
在你的应用中插入一个容器,通常用于显示过程或任务的状态和详细信息。该容器可以容纳多个元素,并且用户可以像st.expander一样展开或折叠它。当折叠时,只有状态图标和标签可见。
标签、状态和展开状态都可以通过在返回的对象上调用.update()来更新。要向返回的容器中添加元素,您可以使用with表示法(推荐)或直接在返回的对象上调用方法。
默认情况下,st.status() 以“运行中”状态初始化。当使用 with 符号调用时,它会在“with”块结束时自动更新为“完成”状态。更多详情请参见下面的示例。
| 函数签名[source] | |
|---|---|
st.status(label, *, expanded=False, state="running") | |
| 参数 | |
label (str) | 状态容器的初始标签。标签可以选择性地包含以下类型的GitHub风格的Markdown:粗体、斜体、删除线、内联代码、链接和图像。图像显示为图标,最大高度等于字体高度。 不支持的Markdown元素会被解包,因此只有它们的子元素(文本内容)会渲染。通过反斜杠转义不支持的元素,将其显示为字面字符。例如,"1\. 不是有序列表"。 有关其他支持的Markdown指令,请参见st.markdown的body参数。 |
expanded (bool) | 如果为True,则以“展开”状态初始化状态容器。默认为False(折叠)。 |
状态 ("running", "complete", 或 "error") | 状态容器的初始状态,决定显示哪个图标:
|
| 返回 | |
(StatusContainer) | 一个可变的状态容器,可以容纳多个元素。标签、状态和展开状态可以在创建后通过.update()进行更新。 |
示例
你可以使用with符号将任何元素插入到状态容器中:
import time import streamlit as st with st.status("Downloading data..."): st.write("Searching for data...") time.sleep(2) st.write("Found URL.") time.sleep(1) st.write("Downloading data...") time.sleep(1) st.button("Rerun")你也可以在容器上使用 .update() 来更改标签、状态或展开状态:
import time import streamlit as st with st.status("Downloading data...", expanded=True) as status: st.write("Searching for data...") time.sleep(2) st.write("Found URL.") time.sleep(1) st.write("Downloading data...") time.sleep(1) status.update( label="Download complete!", state="complete", expanded=False ) st.button("Rerun")
| 函数签名[source] | |
|---|---|
StatusContainer.update(*, label=None, expanded=None, state=None) | |
| 参数 | |
label (str or None) | 状态容器的新标签。如果为None,则标签不会更改。 |
expanded (bool or None) | 状态容器的新展开状态。如果为 None, 则展开状态不会改变。 |
状态 ("running", "complete", "error", 或 None) | 状态容器的新状态。这主要改变图标。如果为 None,则状态不变。 |
还有问题吗?
我们的 论坛 充满了有用的信息和Streamlit专家。