2016-08-31 2 views
-1

여러 디렉토리에서 작업을 수행해야합니다.tkinter로 여러 디렉토리 선택

TKinter는 하나의 파일 (askopenfilename) 및 여러 파일 (askopenfilenames)을 여는 대화 상자를 제공하지만 여러 디렉토리에 대한 대화 상자가 없습니다.

"askdirectories"의 실현 가능한 솔루션을 얻는 가장 빠른 방법은 무엇입니까?

+0

이 질문을 참조하십시오 그것은 (조금 오래된 IMG)를 다음과 같이 보인다. –

답변

1

순수한 tkinter에서이 작업을 수행하는 유일한 방법은 (디렉토리 선택기 위젯을 직접 작성하는 것을 제외하고) 별도의 대화 상자에서 각 디렉토리에 대해 사용자에게 요청하는 것입니다. 당신은 이전에 사용 된 위치를 절약 할 수 있으므로 사용자는 아래의 코드를 사용하여,이 때마다 탐색 할 필요가 없습니다 :

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 :

편집

이 같은 아마 뭔가를보세요?

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 상자 ... Unfortunatley 이것은 각 디렉토리에 대해 수락하고 다시해야한다는 것을 의미합니다 :/당신이 ctrl + click vibe를 찾고 있다고 가정하면 ...// –

+0

Ctrl + ;-) – Okapi575