如何在Streamlit中点击按钮替换原有显示数值
Streamlit 按钮点击替换显示数值解决方案
要实现点击按钮替换原有数值而非新增显示,核心是利用st.session_state存储当前要展示的数值,通过按钮点击更新状态后统一渲染该值。
方案一:自动重运行刷新(推荐)
import streamlit as st # 初始化会话状态,默认显示1 if 'display_num' not in st.session_state: st.session_state.display_num = 1 # 按钮点击逻辑:更新会话状态 if st.button("Perform calculation 2"): st.session_state.display_num = 2 if st.button("Perform calculation 3"): st.session_state.display_num = 3 # 统一显示当前数值 st.write(st.session_state.display_num)
方案二:手动触发重运行
如果需要立即刷新显示,可添加手动重运行指令:
import streamlit as st # 初始化会话状态 if 'display_num' not in st.session_state: st.session_state.display_num = 1 # 显示当前数值 st.write(st.session_state.display_num) # 点击按钮更新状态并触发重运行 if st.button("Perform calculation 2"): st.session_state.display_num = 2 st.experimental_rerun() if st.button("Perform calculation 3"): st.session_state.display_num = 3 st.experimental_rerun()
关键说明
st.session_state:用于在Streamlit脚本多次运行间持久化数据,避免每次按钮点击后数值重置。- 按钮点击后Streamlit会自动重新运行脚本,因此方案一中无需手动触发重运行,更新后的状态值会直接被渲染。
内容的提问来源于stack exchange,提问作者Miguel Gonzalez
相关产品推荐
相关产品推荐

