Рассмотрим следующий код:
from tkinter import Tk, filedialog
root = Tk()
filedialog.askopenfilename()
root.mainloop()
Если вы закроете главное окно перед закрытием диалогового окна файла, в консоли отобразится трассировка со следующей ошибкой в конце:
_tkinter.TclError: can't invoke "grab" command: application has been destroyed
Я хотел бы знать, как этого избежать.Перенос вызова на askopenfilename
в блоке try: ... except TclError: ...
работает, но я боюсь, что он также может скрыть что-то, что я бы предпочел увидеть, особенно если учесть, что такая же ошибка появляется и с некоторыми пользовательскими подклассами Toplevel
и не толькос файловыми диалогами.