显示一个滑块小部件。

这支持int、float、date、time和datetime类型。

这也允许您通过传递一个包含两个元素的元组或列表作为value来渲染一个范围滑块。

st.sliderst.select_slider 的区别在于 slider 只接受数值或日期/时间数据,并以范围作为 输入,而 select_slider 接受任何数据类型,并以可迭代的 选项集作为输入。

注意

由于Python服务器和JavaScript客户端之间的序列化限制,小部件无法准确存储或返回超过+/- (1<<53) - 1的整数值。您必须将这些数字作为浮点数处理,这会导致精度损失。

函数签名[source]

st.slider(label, min_value=None, max_value=None, value=None, step=None, format=None, key=None, help=None, on_change=None, args=None, kwargs=None, *, disabled=False, label_visibility="visible")

参数

label (str)

一个简短的标签,向用户解释这个滑块的用途。 标签可以选择性地包含以下类型的GitHub风格的Markdown:粗体、斜体、删除线、内联代码、链接和图片。图片显示为图标,最大高度等于字体高度。

不支持的Markdown元素会被解包,因此只有它们的子元素(文本内容)会呈现。通过反斜杠转义不支持的元素,将其显示为字面字符。例如, "1\. 不是一个有序列表"

有关其他支持的Markdown指令,请参见st.markdownbody参数。

出于可访问性原因,您不应设置空标签,但可以根据需要使用label_visibility隐藏它。将来,我们可能会通过引发异常来禁止空标签。

min_value (支持的类型或None)

允许的最小值。 如果值是整数,则默认为0;如果是浮点数,则默认为0.0; 如果是日期/日期时间,则默认为value - timedelta(days=14);如果是时间,则默认为time.min

max_value (a supported type or None)

允许的最大值。 如果值是整数,则默认为100;如果是浮点数,则默认为1.0; 如果是日期/日期时间,则为值 + timedelta(days=14);如果是时间,则为time.max

value (支持的类型或支持类型的元组/列表或None)

滑块首次渲染时的值。如果传递了一个包含两个值的元组/列表,则会渲染一个具有这些下限和上限的范围滑块。例如,如果设置为(1, 10),滑块将具有1到10之间的可选范围。默认值为min_value。

步长 (int, float, timedelta, 或 None)

步进间隔。 如果值是整数,则默认为1;如果是浮点数,则默认为0.01; 如果是日期/日期时间,则默认为timedelta(days=1);如果是时间 (或者如果max_value - min_value < 1天),则默认为timedelta(minutes=15)

format (str 或 None)

一个 printf 风格的格式字符串,控制界面应如何显示数字。这不会影响返回值。 int/float 的格式化器支持:%d %e %f %g %i 日期/时间/日期时间的格式化器使用 Moment.js 表示法: https://momentjs.com/docs/#/displaying/format/

key (str or int)

一个可选的字符串或整数,用作小部件的唯一键。 如果省略,将根据小部件的内容生成一个键。 任何两个小部件都不能有相同的键。

help (str)

一个可选的工具提示,显示在小部件标签旁边。 只有当label_visibility="visible"时,Streamlit才会显示工具提示。

on_change (callable)

当此滑块的值发生变化时调用的可选回调函数。

args (tuple)

传递给回调函数的可选参数元组。

kwargs (dict)

一个可选的字典,用于传递给回调函数。

disabled (bool)

一个可选的布尔值,如果设置为True,则禁用滑块。 默认值为False

label_visibility ("visible", "hidden", or "collapsed")

标签的可见性。默认是"visible"。如果这是"hidden",Streamlit会显示一个空的占位符而不是标签,这有助于保持小部件与其他小部件对齐。如果这是"collapsed",Streamlit不会显示标签或占位符。

返回

(int/float/date/time/datetime or tuple of int/float/date/time/datetime)

滑块小部件的当前值。返回类型将与值参数的数据类型匹配。

示例

import streamlit as st

age = st.slider("How old are you?", 0, 130, 25)
st.write("I'm ", age, "years old")

这里是一个范围滑块的示例:

import streamlit as st

values = st.slider("Select a range of values", 0.0, 100.0, (25.0, 75.0))
st.write("Values:", values)

这是一个范围时间滑块:

import streamlit as st
from datetime import time

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

最后,一个日期时间滑块:

import streamlit as st
from datetime import datetime

start_time = st.slider(
    "When do you start?",
    value=datetime(2020, 1, 1, 9, 30),
    format="MM/DD/YY - hh:mm",
)
st.write("Start time:", start_time)

查看我们的视频,了解如何使用Streamlit的核心功能之一,滑块!

在下面的视频中,我们将更进一步,制作一个双端滑块。

forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。