首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Streamlit在按钮的按键上添加输入集?

如何使用Streamlit在按钮的按键上添加输入集?
EN

Stack Overflow用户
提问于 2022-08-10 17:56:37
回答 1查看 135关注 0票数 0

我正在尝试使用Streamlit来构建一个可访问的用户界面,以创建更复杂的JSON对象。这些对象设置了需要用户输入的模式,因此我希望允许用户单击按钮并生成这些输入集。这是我想要做的事情的图表

到目前为止,我尝试的是运行一个函数,该函数在单击按钮时生成输入。下面是代码:

代码语言:javascript
运行
复制
def layer_func():
dictionary["key"]  = {
    st.text_input("layer Name", "Name"): {
        "source": st.text_input("Source", "source"),
        "min": st.slider("Minimum", 0,22, 0),
        "max": st.slider("Maximum", 0,22, 22)
    }
}

if st.button('New Layer'):
 layer_func()

我遇到的问题是,当我更改layer_func()中定义的值时,它会重新加载页面,并导致按钮值恢复为False,这会重置接口以不显示输入。

任何想法都很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-18 17:35:13

为了防止当用户更改一个小部件值时页面重新加载,您可以重构代码,使其具有“源”、"min“和"max”,作为带有提交按钮的表格的一部分,例如:

代码语言:javascript
运行
复制
with st.form("layer_func"):
    layer_name = st.text_input("layer Name", "Name")
    source = st.text_input("Source", "source")
    min = st.slider("Minimum", 0,22, 0)
    max = st.slider("Maximum", 0,22, 22)

    submitted = st.form_submit_button("Submit")
    if submitted: 
        dictionary["key"]  = {
            layer_name: {
            "source": source,
            "min": min,
            "max": max
            }
        }

if st.button('New Layer'):
    layer_func()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73310750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档