Закройте существующий верхний уровень при создании нового.Ткинтер Питон 3 - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть кнопка в программе, которая открывает окно верхнего уровня.Если кнопка нажата снова, я хочу, чтобы старый верхний уровень был уничтожен, а новый был создан.Я искал несколько часов и пытался реализовать разные способы, но ничего не помогло.

Я пробовал эти подходы в различных формах:

if toplevel is None or not toplevel.winfo_exists():
    toplevel.destroy()


try:
    toplevel.destroy()
except:
    pass


if toplevel.winfo_exists() == "1":
    toplevel.destroy()

Мой код выглядит так:

def translate():
        #(I would like to check for and close existing toplevels here)
        toplevel = Toplevel()
        ...stuff

Я очень ценю всю помощь, которую я могу получить!

1 Ответ

0 голосов
/ 17 сентября 2018

Внутри translate, toplevel является локальной переменной. Вам нужно сделать его глобальным, если вы хотите получить к нему доступ за пределами translate и не используете классы.

...