Spaces:
Sleeping
Sleeping
File size: 1,389 Bytes
0bd37cc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import streamlit as st
import time
# 初始化会话状态
if "slider_value" not in st.session_state:
st.session_state.slider_value = 0
if "play_state" not in st.session_state:
st.session_state.play_state = False
# 定义回调函数
def toggle_play():
st.session_state.play_state = not st.session_state.play_state
if st.session_state.play_state:
st.session_state.slider_value = st.session_state.slider
# 创建播放/暂停按钮
button_label = "暂停" if st.session_state.play_state else "播放"
st.button(button_label, on_click=toggle_play)
# 创建滑动条,使用key参数将其与会话状态关联
slider_max = 10
slider = st.slider("进度", 0, slider_max, st.session_state.slider_value, key="slider")
# 显示当前值
st.write(f"当前值: {slider}")
# 如果处于播放状态,自动增加滑动条的值
if st.session_state.play_state:
# 使用空容器来显示进度
progress_container = st.empty()
with st.spinner("正在播放..."):
if st.session_state.slider_value < slider_max:
# 增加滑动条值
st.session_state.slider_value += 1
# 等待一小段时间模拟滑动过程
time.sleep(0.1)
# 使用rerun来更新页面
st.rerun()
else:
# 到达最大值时停止播放
st.session_state.play_state = False |