Streamlit(八) widgets-slider

st.slider / st.selectSlider

源码路径:${python}\Lib\site-packages\streamlit\elements\slider.py(selectSlider.py)

st.slider

st.slider(label, min_value=None, max_value=None, value=None, \
            step=None, format=None, key=None, help=None, on_change=None)
# `slider` 只接受数字或日期/时间数据并以范围作为输入

label:一个简短的标签,向用户解释此按钮的用途
min_value:最小允许值。如果值为 int,则默认为 0,如果为浮点数,则为 0.0,如果为日期/日期时间,则为 value - timedelta(days=14),如果为时间,则为 time.min
max_value:最大允许值。如果值为 int,则默认为 100,如果为浮点数,则为 1.0,如果为日期/日期时间,则为 value + timedelta(days=14),如果为时间,则为 time.max
value: 支持的类型或支持类型的元组/列表或 None 滑块首次呈现时的值。如果在此处传递一个包含两个值的元组/列表,则会呈现具有这些下限和上限的范围滑块。例如,如果设置为“(1, 10)”,滑块的可选范围将在 1 到 10 之间。默认为 min_value
step:int/float/timedelta 或 None 步进间隔。如果值为整数,则默认为 1,如果为浮点数,则默认为 0.01,如果是日期/日期时间,则默认为 0.01,如果是日期/日期时间,则默认为 timedelta(minutes=15)(或者如果 max_value - min_value < 1 天)
format: str 或 None 控制界面如何显示数字的 printf 风格的格式字符串。这不会影响返回值。 int/float 格式器支持:%d %e %f %g %i
key:一个可选的字符串或整数,用作小部件的唯一键。如果省略,将根据小部件的内容为小部件生成一个键。同一类型的多个小部件可能不会共享相同的密钥
help:当按钮悬停在上面时显示的可选工具提示。
on_change:当此复选框的值更改时调用的可选回调。

values = st.slider(
    'Select a range of values',
    0.0, 100.0, 25.0     #min_value=0.0, max_value=100.0, value=25.0 
)
st.write('Values:', values)
#return a float

values = st.slider(
    'Select a range of values',
    0.0, 100.0, (25.0, 75.0) #min_value=0.0, max_value=100.0, value=(25.0,75.0)
    )
st.write('Values:', values)
#return a tuple

values3 = st.slider(
    'Select a range of values', 
    0.0, 100.0, [26.0, 78.0],
    )
st.write('Values:', values3)
#return a tuple
# 如果第二个和第三个是(25.0, 75.0),[25.0, 75.0],那需要加上不同的key,否则会报错widgets with the same generated key

values = st.slider(
    'Select a range of values',
    0.0, 101.0, 26.0,     #min_value=0.0, max_value=100.0, value=25.0 
    step = 1.0,
    format="%d"
)
st.write('Values:', values)
#格式化字符串,但最后返回的还是一个float

 

 time slider

from datetime import time
appointment = st.slider(
     "Schedule your appointment:",
     value=(time(11, 30), time(12, 45)))
st.write("You're scheduled for:", appointment)

 datetime slider

from datetime import datetime, timedelta
start_time = st.slider(
     "When do you start?",
     datetime(2020, 1, 1, 9, 30),
     datetime(2021, 12, 31, 11, 59),
     value=datetime(2020, 5, 1, 9, 30),
     step=timedelta(minutes=60),  #每个小时
     format="MM-DD-YY hh:mm")
st.write("Start time:", start_time)

st.select_slider

st.select_slider(label, options=OptionSequence, value=None, \
            format_func="", key=None, help=None, on_change=None)
#`select_slider` 接受任何数据类型并采用一组可迭代的选项

 

genre = st.select_slider(
  "What's your Select",
  ['old big', 'old two', 'old three'],
  value='old two'
  )

st.write('You selected {}.'.format(genre))
#看起来怪怪的

 

@st.cache
def xiushi(x):
    return "hehe-"+str(x)

@st.cache
def testSelectBox():
    data_frame = pd.DataFrame({
     'first column': [1, 2, 3, 4, 6, 8, 10],
     'second column': [10, 20, 30, 40, 50 , 60 , 80],
      }, index= ['index1','index2','index3','index4','index5','index6','index7'])
    return data_frame

df = testSelectBox()
st.dataframe(df)

genre = st.select_slider(
  "What's your Select",
  df['second column'],
  format_func=lambda x: xiushi(x)
  )

st.write('You selected {}.'.format(genre))
#感觉意义不大呀。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heianduck

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值