2016-08-16 1002 views
2

我一直在閱讀有關在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() 

回答

3

這是很容易 - 你需要的路徑賦值給一個變量,然後打印出來:

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

相關問題