#15449·streamlit

在 `st.expander`,`st.tabs` 和 `st.popover` 中支持 `bind="query-params"`

作者: JosephMarinier创建于 2026年6月5日更新于 2026年9月16日
标签type:enhancementpapercutfeature:query-paramsfeature:st.expanderfeature:st.popover
  • 核对表
  • 我已搜索了现有问题
  • 我为这个问题增加了一个说明性的标题和摘要。

页:1

在“st.expander”和“st.popover”中添加“bind=”query-params”的支持。

为什么?

我既喜欢新的"bind="query-params"功能,也喜欢新的"动力""st.expander"(#13888),"st.tabs"(#13910)和"st.popover"(#13914)等功能,我想一起使用.

怎么会?

st.expander()'、st.tabs()'和st.popover()'中支持bind='query-params'。

++ 附加上下文

作为st.tabs (bind="query-params")'的工作,我一直在使用st.segmented control (bind="query-params")',但视觉上并不那么好。

一段时间以来,我用一个`st.button',在我的应用软件中,黑进了一个动态扩展器+查询参数。 它的工作,但它的混乱。 py 从输入中调用

导入流体为 st

def set bool query param(键:str,值:bul): """在URL中设置布尔查询参数"". 如果值: st.query params [key] = 数值 其他情况: st.query params.pop(键,无)

@st.flagment (英语). def 动态( Expander () 标签 : str, 内容:可调用,

  • *, 键 : str, 帮助: str * * * 无=无; # noqa: A002 暗影一所所建的Python : """创造出一个扩展器,只有被扩展时才会生成内容.

与`st.expander ()'不同,后者是一个总是产生内容的前端组件, 此“ 动态- expander( ) ” 只有在扩展时才产生内容 。 "" "" "" 扩展= st.query params 中的密钥

按钮 = { "标签":标签, "帮助":帮助, "类型":"特出",". “ icon ” : f : 材料/ 扩展 “ 少 ” 如果扩展“ 更多 ” :, {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

带有 st. container( 边框= True, 密钥= key) : 占位符 = st. 空 () 如果扩展: 占位符. 按钮 (key=f" {key} 按钮 已失效), 已禁用=True, ** 按钮)

尝试 : 与st.spinner ("Loading..."): 内容( ) 例外作为e: ST. 例外(e)

占位符. 按钮( B) 键=f“{键=} 键', 点击=set bool query param, args=(关键字,未扩展), ** 按钮, (中文(简体) ).

实例 () : st. write (“ 内容” )

动态 expander("示例",示例,按键="示例")

内容来源: streamlit/streamlit