[python] PySimpleGUI를 사용하여 주소록 애플리케이션 만들기

이번 포스트에서는 PySimpleGUI 라이브러리를 활용하여 간단한 주소록 애플리케이션을 만들어보겠습니다. PySimpleGUI는 사용하기 쉬운 GUI 개발 도구로, Python으로 GUI 애플리케이션을 빠르게 구축할 수 있습니다.

필요한 패키지 설치하기

먼저 PySimpleGUI 패키지를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:

pip install PySimpleGUI

주소록 애플리케이션 개발하기

이제 주소록 애플리케이션을 개발해보겠습니다. 먼저 필요한 모듈을 import합니다:

import PySimpleGUI as sg

다음으로 윈도우 레이아웃을 정의합니다. 주소록에는 이름과 전화번호를 입력하는 필드가 있으며, 목록에 저장된 주소록 항목을 보여주는 리스트 박스가 있습니다:

layout = [
    [sg.Text('이름'), sg.InputText(key='-NAME-')],
    [sg.Text('전화번호'), sg.InputText(key='-PHONE-')],
    [sg.Button('추가'), sg.Button('수정'), sg.Button('삭제')],
    [sg.Listbox(values=[], size=(40, 10), key='-LIST-')]
]

이제 윈도우를 생성하고 레이아웃을 바탕으로 화면을 구성합니다:

window = sg.Window('주소록 애플리케이션', layout)

while True:
    event, values = window.read()
    
    if event == sg.WINDOW_CLOSED:
        break
    
    if event == '추가':
        name = values['-NAME-']
        phone = values['-PHONE-']
        window['-LIST-'].update(values=window['-LIST-'].get() + [name + ' - ' + phone])
    
    if event == '수정':
        selected_item = window['-LIST-'].get()[0]
        name, phone = selected_item.split(' - ')
        window['-NAME-'].update(value=name)
        window['-PHONE-'].update(value=phone)
        window['-LIST-'].update(values=window['-LIST-'].get()[1:])
    
    if event == '삭제':
        window['-LIST-'].update(values=window['-LIST-'].get()[1:])

window.close()

위의 코드는 주소록 애플리케이션의 기능을 구현한 부분입니다. 윈도우를 생성하고 사용자의 입력에 따라 주소록을 추가, 수정, 삭제하는 기능이 포함되어 있습니다.

실행하기

위의 코드를 main.py 파일에 저장한 후 실행해보세요:

python main.py

주소록 애플리케이션이 실행되면 이름과 전화번호를 입력하고 ‘추가’ 버튼을 클릭하면 해당 정보가 주소록 목록에 추가됩니다. ‘수정’ 버튼을 클릭하면 선택한 주소록 정보가 입력 필드에 표시되며, 수정이 완료된 후 ‘추가’ 버튼을 클릭하면 수정된 정보로 업데이트됩니다. ‘삭제’ 버튼을 클릭하면 선택한 주소록 정보가 목록에서 삭제됩니다.

이처럼 PySimpleGUI를 사용하면 몇 줄의 코드로 간단한 GUI 애플리케이션을 만들 수 있습니다. 더 복잡한 기능을 추가하고 싶다면 PySimpleGUI 문서를 참고하시기 바랍니다.

참고 자료