我在工作中开发了一个代码,我想让它对用户更友好,以便与我的团队共享它。这段代码需要知道文件的具体位置,并且代码要在同一个文件夹中才能运行。长话短说,我想添加一个打开对话框窗口的选项,这样他们就可以从任何目录中选择文件。我尝试了下面的代码,因为我希望在选择文件并返回其位置后,Tkinter顶部窗口会自动关闭,而不需要使用按钮,这样我的团队就可以继续该过程中的下一步。
问题是它会打开三个Tkinter窗口,并且在选择文件后它们都保持打开状态。
from tkinter import *
from tkinter import filedialog
top = Toplevel()
root = Tk()
root.fileName = filedialog.askopenfilename(filetypes = (("data migration","*.xlsx"),("data migration","*.csv")))
top.destroy()
top.update()除了上述问题之外,当我试图关闭这些持久窗口时,它也会关闭Python。
到目前为止,我找到的解决方案都添加了一个按钮,这是我尽可能避免的。
发布于 2019-09-27 12:57:15
改为创建一个函数,并让您的函数在最后调用top.destroy():
from tkinter import *
from tkinter import filedialog
root = Tk()
top = Toplevel()
def func():
fileName = filedialog.askopenfilename(filetypes = (("data migration","*.xlsx"),("data migration","*.csv")))
#do whatever you need to do with your filename
print (fileName)
top.destroy()
func()
root.mainloop()发布于 2019-09-28 10:48:11
组合解决方案:
from tkinter import *
from tkinter import filedialog
root = Tk()
top = Toplevel()
def func():
fileName = filedialog.askopenfilename(filetypes = (("data migration","*.xlsx"),("data migration 2","*.csv")))
#do whatever you need to do with your filename
print (fileName)
top.destroy()
def quit():
root.destroy()
func()
quit()
root.mainloop()https://stackoverflow.com/questions/58127848
复制相似问题