2016-08-31 57 views
-1

私はいくつかのディレクトリで操作を実行する必要があります。tkinterでいくつかのディレクトリを選択

TKinterは1つのファイル(askopenfilename)といくつかのファイル(askopenfilenames)を開くダイアログを提供しますが、複数のディレクトリのダイアログがありません。

"askdirectories"の実現可能な解決策を得る最も簡単な方法は何ですか?

+0

この質問を参照してください。それは(少し古いIMG)で、以下のように見えます。 –

答えて

1

純粋なtkinterでこれを行う唯一の方法は、ディレクトリセレクタウィジェットを手作業で作ることを除いて、別々のダイアログで各ディレクトリに対してuserを要求しています。あなたは以前に使用場所を救うことができるので、ユーザは、以下のコードを使用することによって、そこにそれぞれの時間をナビゲートする必要はありません。

from tkinter import filedialog 
dirselect = filedialog.Directory() 
dirs = [] 
while True: 
    d = dirselect.show() 
    if not d: break 
    dirs.append(d) 

別の解決策は、tkinter.tix延長(標準のlibの今一部を使用することですが、それに要求することができますいくつかのプラットフォームにTkのTixをインストールしてください)。主に、tkinter.tix.DirListウィジェットが必要です。 、より多くの場合

img

あらゆる研究努力を示していないtkinter.tixTk Tixドキュメント

+0

ニースのソリューションですが、できるだけ新しい拡張機能をインストールしたくないので、たくさんのコンピュータでそれをやる必要があります...プログラマー自身がtkinterを使っているかもしれません。 – Okapi575

+0

@ Okapi575 thx。あるいは単に実行ファイルをフリーズしたり、distutilsパッケージを作ることもできます – thodnev

0

tkFileDialog.askdirectoryを使用することができます。ドキュメントhereを見てみましょう:)

EDIT

おそらく、このようなものを?

from Tkinter import * 
import tkFileDialog 

root = Tk() 
root.geometry('200x200') 
root.grid_rowconfigure(0, weight = 1) 
root.grid_columnconfigure(0, weight = 1) 

dirs = [] 
def get_directories(): 
    dirs.append(tkFileDialog.askdirectory()) 
    return dirs 

b1 = Button(root, text='select directories...', command = get_directories) 
b1.pack() 


root.mainloop() 

どのような考えですか?

+0

申し訳ありませんが、さらに詳しく調べると、複数のディレクトリに対してビルドされたメソッドが存在しないように見えます。これを丸める唯一の方法は、各ディレクトリをグローバル/インスタンス変数に追加することです。 filedialog box ... Unfortunatleyこれは、各ディレクトリを受け入れて再実行する必要があることを意味します:/あなたがもっと多くの、あるいはCtrl +クリックバイブを探していたと仮定して、私は... –

+0

あなたはCtrl + ;-) – Okapi575

関連する問題