Python 3.x Kivymd对话框关闭
我最近将我的kvmd更新为0.104.1版,其中包括一些对话框的突破性更改。我的程序包含一个按钮,按下该按钮时显示一个包含一些文本的对话框和两个按钮,即“确定”和“取消”。“取消”按钮仅关闭对话框,而“确定”按钮更改屏幕并必须关闭 我的问题是“确定”按钮,它完美地改变了屏幕,但之后它不会关闭,即使我添加了Python 3.x Kivymd对话框关闭,python-3.x,debugging,dialog,kivy,kivy-language,Python 3.x,Debugging,Dialog,Kivy,Kivy Language,我最近将我的kvmd更新为0.104.1版,其中包括一些对话框的突破性更改。我的程序包含一个按钮,按下该按钮时显示一个包含一些文本的对话框和两个按钮,即“确定”和“取消”。“取消”按钮仅关闭对话框,而“确定”按钮更改屏幕并必须关闭 我的问题是“确定”按钮,它完美地改变了屏幕,但之后它不会关闭,即使我添加了discouse(),但它与“取消”按钮的效果非常好。那么,我的代码中是否存在问题,或者它是一个bug 代码段: def on_signup(self, *args):
discouse()
,但它与“取消”按钮的效果非常好。那么,我的代码中是否存在问题,或者它是一个bug
代码段:
def on_signup(self, *args):
self.dialog_close
self.sm.current = 'ninput'
def show_dialog(self, *args):
if not self.dialog:
self.dialog = MDDialog(title='Confirmation',
text='You have been registered.',
size_hint=(0.4, 0.3),
buttons=[
MDFlatButton(text='CANCEL',on_release=self.dialog_close),
MDFlatButton(text="OK!", on_release=self.on_signup)
])
self.dialog.open()
def dialog_close(self, *args):
self.dialog.dismiss(force=True)
您忘记了dialog\u close()方法的括号,该方法在on\u signup()方法中调用。应该是这样的:
def on_signup(self, *args):
self.dialog_close()
self.sm.current = 'ninput'
A在这里真的很有帮助。我有一些想法,但我不能测试它们。@bitenant你能更主观些吗?我不认为你的意思是“主观”。我提供的链接提供了详细信息,但基本上我要求一个简短的程序,我可以运行,看到问题,修复它,并将修复版本返回给你。哦,好吧,对不起,我没能抓住你。但是我有点绕过了这个错误,所以无论如何谢谢你,我试过了,它对我有效。如果设置括号会发生什么?事实上,我在on_signup方法中调用了self.dialog.disease(),它可以工作,但我不知道为什么它再次使用直接disease()而不是单独的itokay方法。您的dialog\u close()方法只是self.dialog.disclose()方法的包装器。但是当您调用
self.dialog\u close
时,您只是调用方法的python对象表示,而不是方法本身,但是当您调用self.dialog\u close()
时,包装器方法被调用,因此该方法中的self.dialog.disclose()被调用。好的。。。非常感谢!!