Я хочу остановить метод, не выполнив его инструкции, если срабатывает определенный флаг - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть метод, который отображает окно Toplevel каждые несколько секунд. В любом случае, если пользователь нажимает кнопку dismiss вместо кнопки ok , остальные окна верхнего уровня не должны отображаться.В приведенном ниже коде disAction () - это команда для кнопки dismiss

Я пытался использовать цикл while, он отображает ошибку «Не отвечает»

def topRequester(self):
if self.dismiss == 0:
    self.after(SLEEP_SEC, self.toplevelmaker)
    self.after(SLEEP_SEC + SLEEP_SEC, self.toplevelmaker)
    self.after(SLEEP_SEC + SLEEP_SEC*2, self.toplevelmaker)
    self.after(SLEEP_SEC + SLEEP_SEC*2, self.topRequester)

def disAction(self):  # the cycle should be disrupted
    self.topwin.withdraw()
    self.dismiss = 1
...