我如何在 kivymd 中使用 on_enter 函数中的对话框?
how do i use dialog in on_enter function in kivymd?
所以我想在第一次访问屏幕时调用一个对话框,我是这样做的:
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 类型没有属性 dismiss,所以它似乎不是它是如何完成的,那我该怎么办呢?
问题是您的 show_dialog()
方法正在调用 dialog_close()
。尝试更改:
on_release=self.dialog_close()
至:
on_release=self.dialog_close
删除 ()
.
所以我想在第一次访问屏幕时调用一个对话框,我是这样做的:
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 类型没有属性 dismiss,所以它似乎不是它是如何完成的,那我该怎么办呢?
问题是您的 show_dialog()
方法正在调用 dialog_close()
。尝试更改:
on_release=self.dialog_close()
至:
on_release=self.dialog_close
删除 ()
.