Python 3.6下Tkinter文件选择后窗口无法关闭问题求助
解决Tkinter文件选择后窗口无法关闭的问题
我来帮你搞定这个窗口残留的问题!你的代码核心问题是Tk实例没有被正确销毁,而且关闭窗口的代码位置也不对,导致执行不到。
先看修正后的完整代码:
from tkinter import filedialog from tkinter import Tk def get_path(): root = Tk() # 先隐藏主窗口,避免弹出多余的空白窗口 root.withdraw() # 调用文件选择对话框 file_paths = filedialog.askopenfilenames() # 必须在return之前销毁Tk实例,彻底关闭窗口 root.destroy() return file_paths # 调用函数获取路径 selected_paths = get_path() print(selected_paths)
为什么你的原代码不行?
- 你原代码里的
root.quit()写在函数外面,这时候root变量还没创建,运行时会直接报错;就算你把它移到函数里,如果放在return语句后面,那代码根本不会执行(return之后函数就结束了)。 root.quit()只是终止Tk的主循环,不会彻底销毁窗口对象,所以窗口可能依然残留;而root.destroy()会直接销毁整个Tk实例,释放资源,窗口才会完全关闭。- 加上
root.withdraw()是个小技巧,可以一开始就隐藏默认的空白Tk窗口,只显示文件选择对话框,体验更友好。
额外小提示
- 如果只需要选择单个文件,改用
filedialog.askopenfilename()(注意少一个s),返回的是单个字符串路径,不用处理元组。 - 确保所有操作窗口的代码都在
return之前执行,不然都会被跳过。
内容的提问来源于stack exchange,提问作者Tom92
相关产品推荐
相关产品推荐

