Post

(PyQt6)1. 시작해보기

Qt 간단한 소개

Qt는 GUI 프로그램을 개발하는데 쓰이는 크로스 플랫폼 프레임워크다. Qt는 원래 C++로 디자인하지만 python도 지원한다. 특징은 다음과 같이 나열할 수 있다.

  • C++ 기반이기 때문에 하드웨어 접근 가능하다.
    • 임베디드 SW의 GUI로도 쓸 수 있다.
  • MFC, C#기반의 framework는 윈도우에서만 동작하지만 Qt는 다양한 OS에서도 돌아간다.
    • Window
    • Mac
    • Linux
      • Ubuntu

Qt 라이센스

GPL ver.3, LGPL ver.3 라이센스를 사용한다. 라이브러리 수정하거나 파생된 라이브러리를 개발하여 배포할 경우 전체 코드를 공개해야 한다.

  • GPL
    • 라이브러리를 사용, 연구, 배포 등을 해도 된다.
    • 단, 소스코드 공개해야 한다.
  • LGPL
    • 라이브러리를 정적/동적 링크로 쓰는 건 괜찮다.
    • 라이브러리를 수정하거나 확장하면 그 부분은 반드시 오픈소스로 공유해야 한다.
    • 내 코드는 공개할 필요는 없다.

PyQt와 PySide 비교

  • PySide와 PyQt는 개발관점에서는 거의 차이가 없다.
    • 다만, Thread를 다룰 때 차이점이 있다.
    • PyQt는 PyQt6.QtCore.QThread로 일반적인 멀티쓰레드 프로그래밍 하듯이 코드 짜면 된다.
    • PySide도 QThread 사용할 수 있으나 QThreadPool이라는 기능을 제공한다. - Thread Pool 관리, 작업 큐 관리할 때 쓰면 좋다는 데 나는 아직 안 써봤다..
  • 라이센스 관점에서도 약간의 차이가 있다.
    • PyQt는 GPL, LGPL 라이센스를 사용한다.
    • PySide는 LGPL 라이센스를 사용한다.

참고로 PySide2는 PyQt5 버전, PySide6는 PyQt6 버전이라고 보면 된다.

This post is licensed under CC BY 4.0 by the author.