python - 在 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)'])
有用。但我认为这对我的情况来说不是用户友好的。此外,在这里我无法将选择限制为 4 个中的 3 个。用户可以在这里选择所有 4 个选项。但是我想要这样的代码,如果选择了第 4 个,那么之前的选择(第 3 个选项)将自动取消选择。我更喜欢复选框的外观,例如radio
按钮:
import streamlit as st
option = st.radio('Select three known variables:', ['initial velocity (u)', 'final velocity (v)', 'acceleration (a)', 'time (t)'])
但是使用radio
,我不能选择多个选项。如何编辑它以便我可以将其显示为复选框并且只能选择 3 个选项?
解决方案
这在视觉上最接近您想要的,因为它们实际上是复选框,而不是单选按钮。但是您不能限制选定的选项,因此可以检查所有选项。
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)')
作为一种解决方法,您可以通过以下方式使用单选按钮,因为它们只允许检查一个组合:
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)'])
推荐阅读
- typescript - 细化标记联合的类型
- mysql - node.js 应用程序在本地工作,但在部署在 heroku 上时崩溃
- javascript - 使用 JavaScript 存储过程替换和更新 ID
- r - 如何在 R 脚本中处理 Unicode 字符“✧”(U+2727)
- c# - .NET 函数无法检索正确的数据
- debian - bash:adduser:找不到命令 [Debian 10 Buster]
- jodit - 如何在 Jodit 中创建自定义按钮以将文本包装在代码标签中?
- python - ffmpeg-python 错误,无法加载 mp4 编码器
- java - 如何搜索 RealmObj 的 RealmList 字段
- javascript - 转换旧的 javascript 包以导出 typescript 模块