在 Tkinter 的输入框中浏览文件并获取文件路径

Browsing file and getting filepath in entrybox in 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()

附上我需要的截图。

您真的确定您正在使用 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 而不是您的路径将位于条目小部件的开头:

/usr/bin...HI

如果我的英语很糟糕,我很抱歉!欢迎编辑!

可能会尝试此代码它可能工作

   from tkinter import *
   from tkinter.filedialog import askopenfilename
   root=Tk()

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

   def browsefunc():
      filename = askopenfilename(filetypes=(("jpg file", "*.jpg"), ("png file 
      ",'*.png'), ("All files", "*.*"),))
      ent1.insert(END, filename) # add this

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

   root.mainloop()