streamlit实现popup弹出框

少啰嗦,先看效果

 目前streamlit并没有自带popup的功能的,网上找了大佬写的另一个模块来实现。使用的是streamlit-modal模块,要先用pip安装,逻辑代码如下:

from streamlit_modal import Modal

# 定义modal
my_modal = Modal(title="", key="modal_key", max_width=200)

# 使用session_state来判断modal里的确定按钮是否被点击
if "confirm" not in st.session_state:
    st.session_state["confirm"] = False

# 回调函数,将session_state置为True
def del_btn_click():
    st.session_state["confirm"] = True

# 如果删除按钮被点击,就进行弹窗
if st.button("删除", key=str(t[0]) + "btn"):
    with my_modal.container():
         st.markdown("""
                     确认删除该用例?
                        
                     {}
                     """.format(t[1]))  # 这里的t[1]为用例名称
         # 定义一个确定按钮,注意key值为指定的session_state,on_click调用回调函数改session_state的值
         st.button("确定", key="confirm", on_click=del_btn_click)

# 这里通过session_state判断弹窗里的确定按钮被点击了,就进行你想要的逻辑操作。
if st.session_state["confirm"]:
    delete_cases(t[0])    # 删除用例
    st.session_state["confirm"] = False    # 恢复session_state为False
    st.experimental_rerun()  # 重刷页面

如果这篇文章有帮助到你,不防一键三连呗~哈哈哈

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 43
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值