首页 > 解决方案 > 在 Tkinter 的输入框中浏览文件并获取文件路径

问题描述

我正在尝试在 python2 中使用 Tkinter 制作一个简单的 GUI,除此之外我还需要制作一个输入框和一个按钮。该按钮浏览文件并在输入框中显示文件路径。我怎样才能做到这一点。

我使用了tkFileDialog.askopenfilename允许浏览路径的方法,但是如何使 gui 在输入框中显示该路径。

我尝试如下:

import tkinter as tk
import tkFileDialog

root=tk.Tk()
def browsefunc():
    filename =tkFileDialog.askopenfilename(filetypes=(("tiff files","*.tiff"),("All files","*.*")))

ent1=tk.Entry(frame,font=40)
ent1.grid(row=2,column=2)

b1=tk.Button(frame,text="DEM",font=40,command=browsefunc)
b1.grid(row=2,column=4)

root.mainloop()

附上我需要的截图。 附件是所需 GUI 的屏幕截图

标签: pythontkinteropenfiledialogfiledialog

解决方案


你真的确定你使用的是python2吗?因为你写tkinter的是小写t而不是大写T,还是你写错了?

无论如何,您可以使用 Entry-widget 的 insert 方法轻松地将一些文本(在您的情况下为路径)插入到您的 Entry-widget 中。在您的情况下,它将是:

import Tkinter as tk
import tkFileDialog

root=tk.Tk()    

ent1=tk.Entry(root,font=40)
ent1.grid(row=2,column=2)

def browsefunc():
    filename =tkFileDialog.askopenfilename(filetypes=(("tiff files","*.tiff"),("All files","*.*")))
    ent1.insert(tk.END, filename) # add this

b1=tk.Button(root,text="DEM",font=40,command=browsefunc)
b1.grid(row=2,column=4)

root.mainloop()

tk.END参数返回条目字符串的最后一个索引。
如果您已经像这样在 Entry-Widget 中写了一些东西:

This is my path:

然后你添加你的路径,它看起来像这样:

This is my path:/usr/bin/... 

如您所见,它在“entry-string”的末尾添加了字符串。
另一个选项是0索引,而不是您的路径将位于 entry-widget 的开头:

/usr/bin...HI

如果我的英语很糟糕,我很抱歉!随意编辑它!


推荐阅读