Python Tkinter AskOpenFileName没有响应

时间:2018-08-02 21:31:50

标签: python tkinter

我正在使用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)

我有什么想念的吗?让我知道是否需要进一步说明。谢谢!

4 个答案:

答案 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