`tk_chooseDirectory` — 디렉터리 선택 대화상자 만들기

tk_chooseDirectory — 디렉터리 선택 대화상자 만들기

저장 위치나 작업 폴더를 사용자가 직접 고르게 해야 할 때가 있어요. tk_chooseDirectory는 운영체제의 폴더 선택 대화상자를 띄워 사용자가 고른 디렉터리 경로를 돌려줘요.

출처: Tcl/Tk Manual — chooseDirectory

본문

시그니처

tk_chooseDirectory ?option value ...?

tk_chooseDirectory 프로시저는 사용자가 디렉터리를 선택하는 대화상자를 띄워요. 명령줄 인자로 다음 옵션-값 쌍을 줄 수 있어요.

옵션

-command string — 사용자가 항목을 선택하고 대화상자를 닫았을 때 호출할 Tcl 명령의 접두사를 지정해요. 사용자가 대화상자를 취소하면 이 콜백은 호출되지 않아요. 실제 명령은 string 뒤에 공백과 사용자가 대화상자에서 선택한 값이 붙은 형태예요. macOS에서만 사용할 수 있어요.

-initialdir dirname — 대화상자가 열릴 때 dirname의 디렉터리를 보여주도록 지정해요. 이 매개변수를 지정하지 않으면 초기 디렉터리는 비-Windows 시스템과 Windows Vista 이전 시스템에서는 현재 작업 디렉터리로, Vista 이상 시스템에서는 마지막으로 사용자가 선택한 디렉터리로 기본 설정돼요. 매개변수가 상대 경로를 지정하면 반환값이 그 상대 경로를 절대 경로로 변환해요.

-message string — 대화상자의 클라이언트 영역에 포함할 메시지를 지정해요. macOS에서만 사용할 수 있어요.

-mustexist boolean — 사용자가 존재하지 않는 디렉터리를 지정할 수 있는지 여부를 정해요. true면 이미 존재하는 디렉터리만 선택할 수 있어요. 기본값은 false예요.

-parent windowwindow를 대화상자의 논리적 부모로 만들어요. 대화상자는 부모 창 위에 표시돼요. macOS에서는 이 옵션이 파일 대화상자를 부모 창에 붙은 시트(sheet)로 만들어요.

-title titleString — 대화상자 제목 표시줄에 보여줄 문자열을 지정해요. 지정하지 않으면 기본 제목이 표시돼요.

예제

set dir [tk_chooseDirectory \
        -initialdir ~ -title "Choose a directory"]
if {$dir eq ""} {
   label .l -text "No directory selected"
} else {
   label .l -text "Selected $dir"
}

취소했을 때 빈 문자열을 받는지($dir eq "")를 확인하는 흐름이에요. 선택했다면 그 경로를 라벨에 표시해요.

더 알아보기

tk_getOpenFile, tk_getSaveFile(파일 선택·저장 대화상자) 문서를 함께 보세요.