Как закрыть окно tkinter без кнопки и не закрыть Python полностью? - PullRequest
0 голосов
/ 09 сентября 2018

Я знаю, что есть такие команды, как .destroy(), .exit() и т. Д. Однако, когда они вынимаются из «команды» из параметра кнопки того, какое действие выполнять при нажатии, они не работают.

Мой сценарий состоит в том, что когда пользователь успешно входит в систему, окно Tkinter, включая его виджеты, должно закрываться, пока не откроется графический интерфейс в Pygame. Я просто не хочу, чтобы окно Tkinter было там, когда оно мне больше не нужно, и при этом не выходит из Python. Мне не нужна кнопка, потому что я хочу, чтобы процесс был автоматическим.

Что меня смущает, так это то, что когда вы выполняете эту команду самостоятельно, она не работает:

Button(root, text="Quit", command=root.destroy).pack() #works
root.destroy() #don't works

1 Ответ

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

Не видя больше исходного кода, я думаю, что проблема основана на , где вы звоните root.destroy()

Если оно приходит после блокировки tk.mainloop(), оно никогда не будет достигнуто. Пожалуйста, прочитайте Tkinter понимание mainloop относительно этой проблемы.

Возможное решение, основанное на вышеуказанном:

while True:
    tk.update_idletasks()
    tk.update()
    if login_successful: # or whatever your login check looks like
        root.destroy()

Вы заменяете mainloop на свой пользовательский цикл, который включает проверку успешного входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...