You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Kivy模拟matplotlib交互功能时弹窗关闭需点击两次问题排查

问题原因

需要点击两次关闭按钮的核心原因是Switch的on_active事件在状态从True切换为False时也会触发:

  • 首次拨动Switch到开启状态(active变为True),触发事件弹出第一个弹窗
  • 点击弹窗的关闭按钮时,代码会将switch.active设为False,此时on_active再次被触发,又创建了第二个新弹窗叠在原有弹窗上方
  • 第一次点击关闭按钮仅关掉了底层的第一个弹窗,视觉上仍能看到第二个弹窗,所以需要再点击一次关闭第二个

修复方案

仅需修改KV文件中Switch的on_active绑定逻辑,添加判断仅当Switch处于激活状态(active为True)时才弹出弹窗即可:

<MyBoxLayout>:
    switch: tog_switch
    canvas.before:
        Color:
            rgba: (1, 1, 1, 1)
        Rectangle:
            size: self.size
            pos: self.pos

    orientation: "vertical"
    padding: 20
    spacing: 10
    Switch:
        id: tog_switch
        # 仅当active为True时才打开弹窗
        on_active: if self.active: Factory.MyPopup().open()

内容的提问来源于stack exchange,提问作者Abdulla Saeed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:54:03