[IN-GPS] pyside6으로 GUI프로그램 만들기 - 구현 방식

박지운·2024년 8월 13일
0

출처 : Qt Wiki

UI 구현 방식 변경

리액트로 파이썬 실행하기
리액트를 쓰기 위해서는 이전 글에서 언급했듯이 많은 비효율이 있었다.
당연히 이전 글과 같은 방식으로는 절대!! 개발을 해서는 안된다.

결국 python으로 ui를 만들기로 했다.


PyQt와 PySide

파이썬 GUI 프로그래밍 프레임워크에는 PyQt를 다들 많이 활용하는 것 같았다.
PyQt는 Qt를 파이썬에서 활용 가능하도록 한 것이다.
이전까지는 pyqt자체가 하나의 프레임워크인 줄 알았었다.

그럼 또 qt란 무엇일까
qt란 C++로 돌아가는 크로스플랫폼프레임워크다.
QML(qt Modeling Language)라는 자체 언어도 가지고 있다.

PyQt 는 qt로 만든 레이아웃에 파이썬 코드를 연결하여 GUI를 제작할 수 있게 해주는 프레임워크이다.
다만 PyQtGPL라이선스를 가지고 있다. 상업적 배포 프로그램은 모든 소스코드를 공개할 의무가 있다.
반면 PySide의 경우 PyQt와 거의 동일하지만 LGPL 라이선스로 의무공개는 없다.
따라서 PySide로 결정을 했다.


PySide 개발 방식

알아봤을 때는 크게 세가지 방식이 있었다.

1. 코드 기반 방식
2. QML 기반 방식
3. 디자이너 기반 방식

여기서 나는 모든 방식으로 간단히 화면을 구현해봤다.

1. 파이썬 코드 기반 방식

  • 장점
    - UI코드가 같이 있기에 코드의 흐름을 한눈에 보기에 편하다.
  • 단점
    - 다른 앱 플랫폼(ios, aos)처럼 시뮬을 보면서 개발이 안된다.
    - 따라서 컴파일을 하면서 확인해야하므로 화면 배치의 어려움을 겪었다.
    - 또한 커스텀하기 위한 css코드도 같이 넣어야 하기에 코드의 길이가 길어진다.

2.QML 기반 방식

  • 장점
    - qml(qt modeling language)은 ui설계용 선언형 언어이며 javascript와도 연동이 가능하다.
    - 코드를 보면 알 수 있듯이 한눈에 알아보기 되게 편하도록 구현이 가능하다.
  • 단점
    - 새로운 언어를 배워야하기에 학습곡선이 필요하다.
    - python과의 상호작용이 복잡하다.

3.디자이너 기반 방식

  • 장점
    - 시작적으로 ui구성이 가능해 빠른 개발이 가능하다.
  • 단점
    - 디자이너에서 만든 화면을 .ui로 저장후에 파이썬 코드로 변환을 해야한다.

나는 아래의 이유들로 qt디자이너 방식을 선택했다.

우선 안드 개발과 익숙해져 있어 코드 변경이 화면에 바로 변경이 안되는 것이 너무 불편했다.
그리고 pyqt & pyside 유튜브 레퍼런스의 거의 90%? 정도는 디자이너를 기반으로 진행한다.

사실 qml방식이 선언형 UI라 마음에 들었었지만 다음 이유가 너무 걸렸다.
현재 프로젝트는 산업경영공학과 연구실에서 진행하고 있다. 나는 용병느낌으로 잠시 동안 들어간 것이다. 이후에는 다른 팀원중 누군가가 수정을 해야할 수도 있다.

따라서 추후 큰 학습곡선 없이 수정하기에 용이한 디자이너 방식을 선택했다.

단점인 .ui 에서 파이썬 코드로의 변환은 플러그인이 해결을 해준다.
아래 Baram 개발자분의 영상으로 도움을 얻었다.

Baram 유튜브 - Vscode & qt desinger 설정

Vscode를 통해 .ui파일을 생성 후 편집, 저장을 하면 바로 .ui에서 파이썬 코드로 변환을 해준다. 따라서 큰 불편함 없이 개발이 가능하다.

또한 이제는 기존 알고리즘 코드를 그대로 갖다 사용하면 된다.


앞으로

리액트를 공부한 것이 아깝기는 하지만 또 항상 앱/웹 개발만 하다가 pyside를 공부해보는 좋은 기회를 가지게 되었으니 괜찮다.
pyside도 생각보다는 레퍼런스가 적어 나중을 위해 기록을 잘해가며 개발을 하려한다.

매번 사이드 느낌의 프로젝트를 하다가 외주를 맡게 되니 더욱 책임감을 갖고 해야겠다...!..

profile
앞길막막 전과생

0개의 댓글