파이썬 GUI 프로그램을 쉽고 바르게 만들 수 있는 방법이 있습니다. 파이썬 GUI 프로그램을 만들기 위해 많이 사용하는 프레임워크는 Tkinter와 PyQT인데요. 이 두 개도 처음 접하는 분들에게는 굉장히 생소하고 어렵습니다. 그래서 더 쉽게 구현할 수 있는 방법을 원하는 분들이 있습니다. 이런 분들이라면 PySimpleGUI를 써 보시는 것을 추천합니다.
1. PySimpleGUI란?!
GUI 프레임웍인 Tkinter와 PyQT를 더 쉽게 사용할 수 있도록 도와주는 패키지입니다. 아래와 같이 간단한 코드 몇 줄이면 쉽게 GUI프로그램을 만들 수 있습니다.
import PySimpleGUI as sg
# 화면 레이아웃
layout = [
[sg.Text('안녕하세요.', key='InputID', size=(20,1))]
,[sg.Button('save') ,sg.Button('run')]
]
# 화면 만들기
window = sg.Window('Test', layout, finalize=True)
# 이벤트 루프
while True:
event, values = window.Read()
if event == sg.WIN_CLOSED:
break
window.close()
PySimpleGUI 설치방법은 아래와 같이 pip install 명령을 사용해서 할 수 있습니다.
pip install pysimplegui
2. GUI화면 구성 방법은?!
PyQT는 GUI Designer를 통해서 직접 그릴 수 있는데요. PySimpleGUI는 코드로 모든 것을 작성할 수 있습니다. GUI화면을 블록으로 채운다고 생각하면 이해하기 쉽습니다. 행 단위를 리스트 자료형으로 채웁니다. 각 행에 들어가야 하는 요소는 또다른 리스트를 안에 넣어서 구성합니다.
3. PySimpleGUI의 구성요소는?!
위의 코드에서 sg.Text라고 입력한 것처럼 함수를 이용해서 GUI구성요소를 만들 수 있습니다.
내용 | 함수 |
텍스트 | Text |
텍스트입력 | InputText |
한 개 파일 선택 | FileBrowse |
여러 개 파일 선택 | FilesBrowse |
저장파일 선택 | FileSaveAs |
폴더 선택 | FolderBrowse |
날짜 선택 | CalendarButton |
색깔 선택 | ColorChooserButton |
종료 버튼 | CloseButton |
실시간 생성 버튼 | RealtimeButton |
체크 박스 | CheckBox |
라디오 버튼 | Radio |
리스트 박스 | Listbox |
콤보 버튼 | Combo |
슬라이더 | Slider |
텍스트 박스 | Multiline |
스크롤 가능한 텍스트박스 | ScrolledTextBox |
세로 구분자 | VerticalSeparator |
진행바 | ProgressBar |
결과 | Output |
옵션 메뉴 | OptionMenu |
메뉴 | Menu |
버튼 메뉴 | ButtonMenu |
프레임 | Frame |
칼럼 | Column |
그래프 | Graph |
이미지 | Image |
트리 | Tree |
탭 | T |
그 외에도 GUI화면을 쉽게 만들게 도와주는 여러가지 기능이 있습니다. 그 중에 하나는 테마인데요. 원하는 색깔과 폰트, 크기를 쉽게 바꿀 수 있습니다. 직접 만들 수도 있지만, 이미 잘 구성된 테마가 많아서 이를 사용하는 것만으로도 충분합니다.
오늘은 파이썬 GUI 추천, PySimpleGUI로 쉽게 빠르게 개발하는 방법에 대해서 알아보았습니다. GUI 프로그램을 자주 만든다면 Tkinter나 PyQT를 이용하는 것도 좋겠습니다. 하지만 한 두개 가끔 만든다면 PySimpleGUI를 이용해보시는 걸 추천드립니다. 다음에는 버튼과 입력을 처리하는 방법에 대해서 알아보겠습니다.
'파이썬 > 파이썬 기초' 카테고리의 다른 글
파이썬 정렬함수-sort,sorted,reverse 및 원하는 순서 정렬하기 (0) | 2022.07.18 |
---|---|
파이썬 XML 파싱 쉽게 하는 방법은?! (0) | 2022.07.06 |
코랩 ipynb 파일 여는 2가지 방법은?! (2) | 2022.07.04 |
파이썬 IDE 인기 순위와 장단점, 한국에서 선호도는?! (0) | 2022.06.28 |
주피터 노트북 파일(ipynb) 불러오기, 3가지 방법 (0) | 2022.06.19 |
html_table_parser보다 쉬운 table태그 데이터프레임 만드는 방법은?! (3) | 2022.06.18 |
파이썬 리스트 중복 출력 및 제거하는 방법은?! (0) | 2022.06.10 |
파이썬 판다스 피클(pickle) 버전 다를 때 해결 방법은?! (0) | 2022.05.28 |