如何使用askopenfilename从Browse-Button检索文件路径,并使用Tkinter将其写入条目窗口小部件

时间:2014-03-18 08:00:29

标签: python tkinter

我刚刚开始玩Tkinter。我想有一个带有entry.widget的小窗口和旁边的浏览按钮,可以输入文件路径或通过单击"浏览"选择文件。按钮。这是我的第一个方法:

from Tkinter import *
import tkFileDialog
#import os

master = Tk()

def callback():
    path = tkFileDialog.askopenfilename()
    print path

w = Label(master, text="File Path:")
e = Entry(master)
b = Button(master,text="Browse", command = callback)

w.pack(side=LEFT)
e.pack(side=LEFT)
b.pack(side=LEFT)

master.mainloop()

我的问题是,我不知道如何在选择文件后将文件路径写入条目窗口小部件。我认为它可能适用于像

这样的东西
e.insert(path)

但我无法访问路径,因为它只是回调函数中的局部变量。我已经尝试将其指定为全局变量,但它没有成功。

提前感谢您的任何建议。

2 个答案:

答案 0 :(得分:2)

您可以使用Tkinter.StringVar作为参赛作品:

var = StringVar()
e = Entry(master, textvariable=var)
b = Button(master, text="Browse",
           command=lambda:var.set(tkFileDialog.askopenfilename()))

答案 1 :(得分:2)

使用'插入':

from Tkinter import *
import tkFileDialog

master = Tk()


def callback():
    path = tkFileDialog.askopenfilename()
    e.delete(0, END)  # Remove current text in entry
    e.insert(0, path)  # Insert the 'path'
    # print path


w = Label(master, text="File Path:")
e = Entry(master, text="")
b = Button(master, text="Browse", command=callback)

w.pack(side=LEFT)
e.pack(side=LEFT)
b.pack(side=LEFT)

master.mainloop()