728x90
반응형

 티스토리 

 

GUI로 여러 폴더의 이름을 선택한 값 구하기

 폴더별로 동작하는 GUI 앱을 만들어 보자. 

1. 코드리뷰

 

import PySimpleGUI as sg

# 폴더 목록을 보여주고 선택할 수 있도록 하는 함수
def select_folders():
    # 폴더 목록을 저장할 리스트
    folder_list = []
    # 폴더 선택 창의 레이아웃
    layout = [
        [sg.Text('폴더를 선택하세요.')],
        [sg.Listbox(values=folder_list, size=(40, 10), key='-FOLDER-LIST-', select_mode=sg.LISTBOX_SELECT_MODE_EXTENDED)],
        [sg.Button('추가'), sg.Button('제거'), sg.Button('확인'), sg.Button('취소')]
    ]
    # 폴더 선택 창을 생성하고 이벤트와 값들을 반환받음
    window = sg.Window('폴더 선택', layout)
    while True:
        event, values = window.read()
        # 취소 버튼을 누르거나 창을 닫으면 None을 반환하고 종료함
        if event in (sg.WIN_CLOSED, '취소'):
            window.close()
            return None
        # 추가 버튼을 누르면 폴더를 하나 선택하고 리스트에 추가함
        elif event == '추가':
            folder = sg.popup_get_folder('폴더를 선택하세요.')
            if folder is not None and folder not in folder_list:
                folder_list.append(folder)
                window['-FOLDER-LIST-'].update(folder_list)
        # 제거 버튼을 누르면 리스트에서 선택한 폴더를 제거함
        elif event == '제거':
            selected_folders = values['-FOLDER-LIST-']
            if selected_folders:
                for folder in selected_folders:
                    folder_list.remove(folder)
                window['-FOLDER-LIST-'].update(folder_list)
        # 확인 버튼을 누르면 선택한 폴더들의 리스트를 반환하고 종료함
        elif event == '확인':
            window.close()
            return folder_list  # 수정: folder_list를 반환하도록 수정

# 폴더 선택 창을 띄우고 선택한 폴더들의 경로를 출력하는 메인 함수
def main():
    # 폴더 선택 창을 띄우고 선택한 폴더들의 리스트를 folders 변수에 저장함
    folders = select_folders()
    # folders 변수가 None이 아니면 선택한 폴더들의 경로를 출력함
    if folders is not None:
        print(f'선택한 폴더들의 경로는 다음과 같습니다.')
        for folder in folders:
            print(folder)
    # folders 변수가 None이면 폴더를 선택하지 않았다고 출력함
    else:
        print('폴더를 선택하지 않았습니다.')

main()

 

마무리

- 이번 포스팅은 Folder Browser 만들기 에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형

+ Recent posts