【问题标题】:how do i use dialog in on_enter function in kivymd?如何在 kivymd 的 on_enter 函数中使用对话框?
【发布时间】:2021-03-11 21:14:12
【问题描述】:

所以我想在第一次访问屏幕时调用一个对话框,我是这样做的:

class LoginScreen(Screen):
    def dialog_close(self, *args):
        if self.dialog:
            self.dialog.dismiss(force=True)
    def show_dialog(self,*args):
        if not self.dialog:
            self.dialog=MDDialog(text="test",buttons=[MDFlatButton(text="Ok",on_release=self.dialog_close())])
        self.dialog.open()
    def on_enter(self):
        self.show_dialog()
    def Sign_In(self,*args):
        self.manager.current="main_screen"

但是当我运行这段代码时出现错误:“LoginScreen 没有属性对话框” 所以我试图声明一个变量

dialog=None 

在函数之前,但我得到一个错误,说 None 类型没有属性关闭,所以看起来它不是如何完成的,那我该怎么做呢?

【问题讨论】:

    标签: python kivy kivymd


    【解决方案1】:

    问题是您的show_dialog() 方法正在调用dialog_close()。尝试改变:

    on_release=self.dialog_close()
    

    到:

    on_release=self.dialog_close
    

    删除()

    【讨论】:

    • 现在我得到一个错误:AttributeError: 'LoginScreen' object has no attribute 'dialog
    • 哦,我忘了像 dialog=None 一样初始化它,抱歉)
    猜你喜欢
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多