[python] PySimpleGUI를 사용하여 터미널 UI 만들기

Python은 다양한 GUI 프레임워크를 제공하지만, 그 중에서도 PySimpleGUI는 터미널 환경에서 쉽게 사용할 수 있는 간단하고 직관적인 GUI 라이브러리입니다. 이 튜토리얼에서는 PySimpleGUI를 사용하여 간단한 터미널 UI를 만드는 방법에 대해 알아보겠습니다.

1. PySimpleGUI 설치하기

PySimpleGUI를 사용하기 위해서는 먼저 해당 라이브러리를 설치해야 합니다. 다음의 명령어를 사용하여 PySimpleGUI를 설치합니다.

pip install PySimpleGUI

2. 기본 터미널 UI 만들기

PySimpleGUI를 사용하여 터미널 UI를 만들기 위해서는 다음과 같은 단계를 따릅니다.

첫째, 필요한 모듈을 import합니다.

import PySimpleGUI as sg

둘째, 필요한 UI 요소를 정의합니다. 예를 들어, “Hello, World!”라는 텍스트를 출력하기 위한 Text 요소와 종료 버튼을 추가할 수 있습니다.

layout = [
    [sg.Text("Hello, World!")],
    [sg.Button("Exit")]
]

셋째, 위에서 정의한 layout을 사용하여 window를 생성합니다.

window = sg.Window("My First GUI", layout)

넷째, 이벤트 루프를 시작합니다. 아래의 코드는 사용자가 창을 닫을 때까지 이벤트를 처리하는 무한 루프를 생성하는 예제입니다. 종료 버튼을 누르면 window.close()를 호출하여 창을 닫고, break를 사용하여 루프를 종료합니다.

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

마지막으로, 프로그램을 실행합니다.

window.close()

3. 추가적인 UI 요소와 기능

PySimpleGUI는 다양한 UI 요소와 기능을 제공합니다. Text, Button 이 외에도 Input Text, Checkbox, Radio Button, Listbox 등을 사용할 수 있습니다. 또한, 이벤트 처리를 위해 Callback 함수를 사용할 수도 있습니다.

예를 들어, 사용자로부터 입력받은 값을 출력하는 예제를 작성해보겠습니다.

import PySimpleGUI as sg

layout = [
    [sg.Text("Enter your name:"), sg.InputText()],
    [sg.Button("Submit"), sg.Button("Exit")],
    [sg.Text("", size=(50, 1), key="-OUTPUT-")]
]

window = sg.Window("My Second GUI", layout)

while True:
    event, values = window.read()

    if event == sg.WINDOW_CLOSED or event == "Exit":
        break
    if event == "Submit":
        name = values[0]
        window["-OUTPUT-"].Update(f"Hello, {name}!")

window.close()

위의 예제에서는 사용자로부터 이름을 입력받아 Submit 버튼을 클릭할 때마다 해당 이름을 출력하는 기능을 구현하였습니다. Key 속성을 사용하여 출력 결과를 업데이트할 수 있습니다.

4. 마무리

이제 PySimpleGUI를 사용하여 터미널에서 간단한 UI를 만드는 방법에 대해 알아보았습니다. PySimpleGUI를 통해 터미널 기반의 애플리케이션을 더욱 유연하고 사용자 친화적으로 만들 수 있습니다. 자세한 내용은 PySimpleGUI 공식 문서를 참조하시기 바랍니다.

참고 링크: