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
반응형
'PYTHON 파이썬 > PysimpleGUI' 카테고리의 다른 글
PysimpleGUI File Browser , 파일 탐색기 만들기 (0) | 2024.01.30 |
---|---|
[python/PySimpleGUI] 주요 기능 10가지 예제 (0) | 2024.01.11 |
[Python/Pandas]파이썬 판다스 datetime 특정 날짜 구간 조건별 추출#2 (0) | 2023.12.23 |
File Browsing / PySimpleGUI / sg.popup_get_file (0) | 2023.08.04 |
[파이썬초보] PysimpleGUI 달력을 활용한 입력창(Input button) (0) | 2023.06.25 |