为何在函数内无法关闭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
相关产品推荐
相关产品推荐

