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

为何在函数内无法关闭Kivy Popup?直接绑定却可行

Kivy弹窗关闭问题解决方案

问题出在自定义press()函数里的方法调用:你写的self.popup.dismiss只是引用了弹窗的关闭方法,没有实际执行它。

修正方法

把press函数里的这一行:

self.popup.dismiss

改成:

self.popup.dismiss()

原因说明

在Python中,调用方法必须加上括号(),否则只是获取方法对象而不会执行方法逻辑。而button6绑定on_release = self.popup.dismiss时,Kivy的事件绑定机制会在触发事件时自动调用该方法,所以不需要括号;但在自定义函数内部,你必须显式调用方法,加上括号才能触发弹窗关闭操作。

修正后的press函数代码

def press(obj):
    """button press function"""
    user_answer = str(obj.text)[0]
    print(right_answerc)
    print(user_answer)
    self.popup.dismiss()  # 这里加上括号
    return 

内容的提问来源于stack exchange,提问作者Andrey Pa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:40:33