2016-08-16 12 views
2

TkinterのBrowseボタンに関するいくつかの記事を読んでいますが、私の答えは見つかりませんでした。"browse"ボタンを使って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'に対してのみ機能します。代わりにラムダで試してみます:) – Jindil

+0

いくつかのフォルダディレクトリパスはどういう意味ですか?あなたはあなたの質問にそれを含めていません。問題をより明確に記述してください。 –

+0

はい私はスクリプトを最小限に単純化しましたが、インジェジャー、ファイル、フォルダーなどのユーザー入力を収集し、ジェネリックコマンドを使用するのは面白かったのです。最後に私はBryanのポストリンクにあるように、私のボタン 'command = lambda:DisplayDir(MyText)'を持っています。 – Jindil

関連する問題