我正在使用tkinter asopenfilename触发文件选择器,以便从我的本地目录读取文件。我的问题是选择文件后,窗口冻结,而python则“没有响应”。
我已经尝试过这篇文章的答案:Tkinter askopenfilename() won't close真不走运。
下面是我的代码:
from tkinter import Tk
from tkinter.filedialog import askopenfilename
root = Tk()
root.withdraw()
root.update()
filename = askopenfilename()
print(filename)
我有什么想念的吗?让我知道是否需要进一步说明。谢谢!
答案 0 :(得分:1)
我尝试了上述所有解决方案,但似乎并没有为我解决相同的问题。该对话框正在打开,但在后台某处。
在其他地方找到了此代码,它对我来说就像是一种魅力。在Windows 10上,也使用python 3.x,并使用Jupyter Notebook。
将其张贴在这里,以防他人受骗。
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
root.call('wm', 'attributes', '.', '-topmost', True)
file_path = filedialog.askopenfilename(
%gui tk
print(file_path)
答案 1 :(得分:0)
在MacOS中,我尝试在filename = askopenfilename()之后使用root.update()。
以下为我工作-
from tkinter import Tk
from tkinter.filedialog import askopenfilename
root = Tk()
root.withdraw()
filename = askopenfilename()
root.update()
print(filename)
答案 2 :(得分:0)
askopenfilename doesn't work in windows
from tkinter import *
#from tkFileDialog import askopenfilename
import tkinter.filedialog
def callback():
name= tkinter.filedialog.askopenfilenames()
print (name)
errmsg = 'Error!'
Button(text='File Open', command=callback).pack(fill=X)
mainloop()
答案 3 :(得分:0)
我在MacOS上具有相同的行为,添加iPython魔术%gui tk
似乎可以解决此问题:
from tkinter import Tk
from tkinter.filedialog import askopenfilename
%gui tk
root = Tk()
root.withdraw()
filename = askopenfilename(multiple=True)
print(filename)
来自docs:
%gui tk # enable Tk event loop integration