Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Kivymd对话框关闭_Python 3.x_Debugging_Dialog_Kivy_Kivy Language - Fatal编程技术网

Python 3.x Kivymd对话框关闭

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):

我最近将我的kvmd更新为0.104.1版,其中包括一些对话框的突破性更改。我的程序包含一个按钮,按下该按钮时显示一个包含一些文本的对话框和两个按钮,即“确定”和“取消”。“取消”按钮仅关闭对话框,而“确定”按钮更改屏幕并必须关闭

我的问题是“确定”按钮,它完美地改变了屏幕,但之后它不会关闭,即使我添加了
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()被调用。好的。。。非常感谢!!