[python] PySimpleGUI를 사용하여 사무실 예약 시스템 개발하기

많은 사무실에서는 사람들이 효율적으로 예약을 할 수 있는 시스템을 필요로 합니다. 이를 위해 PySimpleGUI 라이브러리를 사용하면 간단하고 강력한 사무실 예약 시스템을 개발할 수 있습니다.

Prerequisites

예약 시스템 개발하기

  1. 필요한 라이브러리를 임포트합니다.

    import PySimpleGUI as sg
    import datetime
    
  2. 예약 가능한 시간대를 리스트로 정의합니다.

    time_slots = ['09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00']
    
  3. 예약 시스템 GUI를 구성합니다.

    layout = [
        [sg.Text('사무실 예약 시스템')],
        [sg.Text('예약 날짜'), sg.Input(key='-DATE-', enable_events=True)],
        [sg.Text('예약 시간'), sg.Combo(time_slots, key='-TIME-', enable_events=True)],
        [sg.Button('예약', key='-RESERVE-')]
    ]
    
    window = sg.Window('사무실 예약 시스템', layout)
    
  4. 이벤트 핸들러 함수를 정의합니다.

    def handle_events(event, values):
        if event == '-DATE-':
            # 입력된 날짜가 오늘 날짜보다 이전인 경우 경고 메시지를 출력합니다.
            selected_date = datetime.datetime.strptime(values['-DATE-'], '%Y-%m-%d').date()
            today = datetime.date.today()
    
            if selected_date < today:
                sg.popup('오늘 이후의 날짜를 선택하세요.', title='경고')
                window['-DATE-'].update(today.strftime('%Y-%m-%d'))
    
        elif event == '-RESERVE-':
            # 예약 정보를 저장하고 성공 메시지를 출력합니다.
            reserved_date = values['-DATE-']
            reserved_time = values['-TIME-']
            sg.popup(f'{reserved_date} {reserved_time}에 예약되었습니다.', title='성공')
    
    
  5. 이벤트 루프를 실행합니다.

    while True:
        event, values = window.read()
        if event == sg.WINDOW_CLOSED:
            break
    
        handle_events(event, values)
    
    window.close()
    

실행결과

예약 시스템 스크린샷

사용자는 예약하고자 하는 날짜를 선택하고, 예약 가능한 시간대 중에서 원하는 시간을 선택한 후에 ‘예약’ 버튼을 클릭하여 예약을 완료할 수 있습니다. 예약 날짜는 오늘 이후의 날짜만 선택할 수 있으며, 예약이 성공적으로 완료되면 예약 정보가 팝업창으로 출력됩니다.

결론

PySimpleGUI를 사용하여 사무실 예약 시스템을 개발하는 방법을 알아보았습니다. 이 라이브러리를 활용하면 간단하고 직관적인 GUI를 작성할 수 있으며, 다양한 개발 과제에 유용하게 활용할 수 있습니다. 자세한 내용은 PySimpleGUI 공식 문서를 참조하시기 바랍니다.