Tkinter는 Python에서 GUI 애플리케이션을 개발하기 위한 표준 라이브러리로, 다양한 위젯과 패키지를 활용해 기능이 풍부한 데스크톱 애플리케이션을 손쉽게 만들 수 있습니다. 그중 filedialog 패키지는 로컬 머신의 파일 시스템과 상호 작용할 수 있는 인터페이스를 제공하며, 이를 활용하면 시스템 내 어떤 파일이든 접근하여 읽기, 쓰기 등 CRUD(생성·조회·수정·삭제) 작업을 수행할 수 있습니다.
파일 대화 상자(file dialog)에 포커스를 주려면 해당 대화 상자와 연결된 부모 창(parent window)을 지정하는 것이 핵심입니다. 메인 윈도우가 코드상 최상위에 정의되어 있으면, 대화 상자가 호출될 때 자동으로 다른 위젯들보다 위에 위치하며 포커스를 갖게 됩니다.
예제
아래 예제에서는 클릭하면 로컬 시스템에서 파일을 선택할 수 있는 대화 상자를 여는 버튼을 만들었습니다.
# tkinter 라이브러리 임포트
from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageTk
# tkinter 프레임 인스턴스 생성
win = Tk()
# Tkinter 윈도우 크기 설정
win.geometry("700x350")
# 윈도우 제목 설정
win.title("File Explorer")
# 파일 대화 상자를 여는 함수 정의
def open_file():
win.filename = filedialog.askopenfilename(title="파일 선택", filetypes=(("JPG 파일", "*.jpg"), ("모든 파일", "*.*")))
# 버튼 위젯 생성
b1 = Button(win, text="열기", command=open_file)
b1.place(relx=.5, rely=.5, anchor=CENTER)
win.mainloop()실행 결과
위 코드를 실행하면 버튼 하나가 배치된 창이 화면에 나타납니다.

버튼을 클릭하면 파일 선택 대화 상자가 열리고, 사용자는 로컬 시스템에서 원하는 파일을 직접 선택할 수 있습니다.
