python3tkinter没有tkFileDialog导入。而是要导入
filedialog
import tkinter as tk # this is the preferred import for tkinter
from tkinter import filedialog
root = tk.Tk()
x = filedialog.askopenfilename()
print(x)
root.mainloop()
如果你想只导入你特别需要的对话框,你可以这样做。
import tkinter as tk # this is the preferred import for tkinter
from tkinter.filedialog import askopenfilename
root = tk.Tk()
x = askopenfilename()
print(x)
root.mainloop()
更新:根据布莱恩在下面提到的,这里是另一个例子,包括一个延迟,以帮助防止所提到的问题。尽管这只适用于在到达mainloop之前打开的dilog,对于许多应用程序,我认为这不是一个问题,因为在GUI中,对话框通常不是第一个出现的东西。不过,这仍然是一个很好的信息。
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
def print_file_name():
x = filedialog.askopenfilename()
print(x)
root.after(100, print_file_name)
root.mainloop()
或:
import tkinter as tk # this is the preferred import for tkinter
from tkinter.filedialog import askopenfilename
root = tk.Tk()
def print_file_name():
x = askopenfilename()
print(x)
root.after(100, print_file_name)
root.mainloop()