在 Streamlit 的复选框中选择多个选项

raf*_*raf 6 python checkbox button radio-button streamlit

我是 Streamlit 的新手。我想进行多项选择用户输入(复选框)。但我想从 4 个选项中最多选择 3 个。

我尝试过使用 的下拉功能multiselect

import streamlit as st
option = st.multiselect('Select three known variables:', ['initial velocity (u)', 'final velocity (v)', 'acceleration (a)', 'time (t)'])  
Run Code Online (Sandbox Code Playgroud)

有用。但我认为这对于我的情况来说并不方便。另外,这里我无法将选择限制为 4 个中的 3 个。用户可以在此处选择所有 4 个选项。但我想要的代码是,如果选择了第四个选项,则前一个选择(第三个选项)将被自动取消选择。我更喜欢复选框(例如按钮)的外观radio

import streamlit as st
option = st.radio('Select three known variables:', ['initial velocity (u)', 'final velocity (v)', 'acceleration (a)', 'time (t)'])  
Run Code Online (Sandbox Code Playgroud)

但使用 时radio,我无法选择多个选项。如何编辑它,以便将其显示为复选框并且只能选择 3 个选项?

ani*_*ewe 5

这在视觉上最接近您想要的,因为它们实际上是复选框,而不是单选按钮。但您无法限制所选选项,因此可以检查所有选项。

st.write('Select three known variables:')
option_1 = st.checkbox('initial velocity (u)')
option_2 = st.checkbox('final velocity (v)')
option_3 = st.checkbox('acceleration (a)')
option_4 = st.checkbox('time (t)')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

作为解决方法,您可以按以下方式使用单选按钮,因为它们仅允许检查一个组合:

option = st.radio('Select three known variables:',
                  ['initial velocity (u), final velocity (v), acceleration (a)',
                   'initial velocity (u), final velocity (v), time (t)',
                   'initial velocity (u), acceleration (a), time (t)',
                   'final velocity (v),acceleration (a), time (t)'])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述