Кивимд диалог закрыть - PullRequest
1 голос
/ 05 мая 2020

Недавно я обновил свой kvmd до версии 0.104.1, в него были внесены некоторые критические изменения для диалогов. Моя программа содержит кнопку, которая при нажатии показывает диалоговое окно, содержащее текст и 2 кнопки, а именно ОК и ОТМЕНА. Кнопка отмены просто закрывает диалоговое окно, в то время как кнопка ОК изменяет экран и закрывается.

Моя проблема связана с кнопкой OK, она безупречно меняет экран, но не закрывается после этого, даже когда я добавил dismiss(), но она отлично работает с кнопкой «Отмена». Так есть проблема в моем коде или это ошибка?

Фрагмент кода:

    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)

1 Ответ

0 голосов
/ 06 мая 2020

Вы забыли скобки вашего метода dialog_close (), который вызывается в вашем методе on_signup (). Должно получиться так:

def on_signup(self, *args):
    self.dialog_close()
    self.sm.current = 'ninput'
...