在Tkinter中使用“浏览”按钮显示文件的路径 - Python

问题描述:

我一直在阅读有关在Tkinter中浏览按钮问题的几篇文章,但我无法找到我的答案。在Tkinter中使用“浏览”按钮显示文件的路径 - Python

所以我写了这段代码来获得一个目录路径,当点击浏览按钮时,并在输入字段中显示这个路径。 部分原因:运行脚本时会直接弹出文件浏览器窗口。我确实在输入字段中获得了路径,但是如果我想要使用“浏览”按钮更改文件夹,则不起作用。

我不想让浏览器从一开始就弹出,但只有当我点击浏览时! 谢谢您的回答

from Tkinter import * 
from tkFileDialog import askdirectory 

window = Tk() # user input window 

MyText= StringVar() 

def DisplayDir(Var): 
    feedback = askdirectory() 
    Var.set(feedback) 

Button(window, text='Browse', command=DisplayDir(MyText)).pack() 
Entry(window, textvariable = MyText).pack() 
Button(window, text='OK', command=window.destroy).pack() 

mainloop() 

这是很容易 - 你需要的路径赋值给一个变量,然后打印出来:

from tkinter import * 
root = Tk() 

def browsefunc(): 
    filename = filedialog.askopenfilename() 
    pathlabel.config(text=filename) 

browsebutton = Button(root, text="Browse", command=browsefunc) 
browsebutton.pack() 

pathlabel = Label(root) 
pathlabel.pack() 

PS:这是在Python 3。但概念是相同

+0

好的,谢谢。但我实际上需要获取多个文件夹目录路径,在这种情况下,它仅适用于变量'pathlabel'。我会尝试用lambda代替:) – Jindil

+0

你是什么意思的几个文件夹目录路径?你没有把它包含在你的问题中。请更清楚地描述你的问题。 –

+0

对不起,我已经简化了脚本到最低限度,但我设计了一个表单,我在其中收集一些用户输入,包括intger,文件和文件夹,这就是为什么有一个通用命令有趣的原因。最后,我在我的按钮'command = lambda:DisplayDir(MyText)'中按照Bryan的帖子链接建议。 – Jindil