주제: [PyQt 프로그래밍] 파이썬으로 GUI 만들기 [1] pyqt6 소개 및 설치하기
작성: 2023-10-09
버전: python 3.9 / PyQt6 6.5.2 / PyQt6-Qt6 6.5.2 / PyQt6-sip 13.5.2
안녕하세요, 개발자 루카스입니다.
파이썬은 그 뛰어난 확장성과 다양한 라이브러리 덕분에 여러 분야에서 널리 사용되고 있습니다. GUI(Graphical User Interface) 개발 분야에서도 예외는 아닙니다. 파이썬을 활용하면 Tkinter, wxPython, Kivy, Dear PyGui와 같은 다양한 라이브러리를 통해 쉽게 GUI 애플리케이션을 만들 수 있지만, 그 중에서도 PyQt는 강력한 기능과 뛰어난 퍼포먼스로 많은 개발자들이 사용하고 있습니다.
이번 포스팅에서는 PyQt에 대한 소개 및 특징들을 알아보고자 합니다.
1. pyqt란?
PyQt는 C++로 작성된 Qt 프레임워크의 파이썬 바인딩입니다. 여기서 바인딩이란, 어떤 프로그래밍 언어로 작성된 라이브러리나 프레임워크를 다른 프로그래밍 언어에서도 사용할 수 있게 만드는 것을 의미합니다. 즉, PyQt를 사용하면 파이썬으로 Qt 프레임워크의 기능을 사용할 수 있게 됩니다.
**Qt 프레임워크란?
Qt는 크로스 플랫폼 C++ 라이브러리로, 다양한 플랫폼에서 동일한 코드로 GUI 애플리케이션을 개발할 수 있음. 이는 Windows, macOS, Linux, Android, iOS 등 다양한 운영 체제에서 동작함. Qt는 그래픽 사용자 인터페이스(GUI)뿐만 아니라 네트워킹, 데이터베이스 연결, XML 파싱, 스레딩 등 다양한 기능을 제공.
2. 그럼 왜 pyqt가 필요한걸까..?
PyQt와 같은 GUI 프레임워크를 사용하는 주요 이유 중 하나는 사용자에게 친숙하고 직관적인 인터페이스를 제공하기 위함입니다. 아울러, 프로그래밍에 익숙하지 않은 일반 사용자들이 소프트웨어를 사용하기 위해 코드를 실행하거나 필요한 라이브러리를 설치하는 과정을 거치는 것은 번거로울 수 있습니다. 이러한 문제를 해결하기 위해 pyqt는 실행 파일 형식(.exe 파일 등)으로 소프트웨어를 배포하는 것이 가능합니다. 즉, PyQt는 그 자체로 강력한 GUI 프레임워크이며, .exe 파일과 같은 단일 실행 파일로 응용 프로그램을 배포하는 기능은 프로그램의 접근성과 사용 편의성을 크게 향상시킵니다.
PyQt의 장점
- 통합배포
- 크로스플랫폼
- 직관적인 GUI 제공
- 라이브러리 충돌이슈 최소화
3. pyqt 설치
pip 명령어로 쉽게 설치가 가능합니다.
pyqt5는 python 2와 3 모두 지원하지만, 지금 설치하고자하는 pyqt6는 python3.6.1 이상버젼만 지원합니다.
pip3 install pyqt6 # pyqt6 설치
- Python v3.6.1 이상인 경우, pyqt6 설치 가능(O)
- Python v3.6.1 이하인 경우, pyqt6 설치 불가능(x)
- 방안1. python 버전 업데이트
- 방안2. pyqt5 설치
4. PyQt 모듈
PyQt는 파이썬에서 강력한 GUI 애플리케이션을 쉽게 개발할 수 있게 해주는 도구입니다.
필요한 기능을 제공하는 모듈을 선택하여 사용하면 됩니다.
- pyqt 주요모듈
- QtCore: 비 GUI 기능(타이머, 파일 I/O, 스레드)에 필요한 클래스들을 포함되어 있습니다.
- QtGui: 기본적인 GUI 기능을 제공하는 클래스들이 포함되어 있습니다.
- QtWidgets: 사용자 인터페이스 위젯이 포함된 모듈입니다.
- QtNetwork: 네트워크 프로그래밍과 관련된 클래스들이 포함되어 있습니다.
- PyQt 개발 도구
- PyQt Designer: GUI 디자인을 위한 드래그 앤 드롭 인터페이스 도구입니다.
- PyQt Linguist: 애플리케이션의 다국어 지원을 위한 도구입니다.
5. PyQt5 vs PyQt6
pyqt6에서는 일부 속성 및 메서드의 이름이 변경되었습니다.
즉, 기존의 pyqt5 유저가 pyqt6를 설치하고 코드수정없이 코드를 돌리는 경우 오류가 발생할 수 있습니다.
간단한 예시코드 입니다.
import sys
from PyQt5.QtWidgets import *
app = QApplication(sys.argv)
win = QWidget()
win.show()
app.exec_()
import sys
from PyQt6.QtWidgets import * #QApplication, QWidget
app = QApplication(sys.argv)
win = QWidget()
win.show()
# ----------------- 수 정 ------------------
sys.exit(app.exec())
# ----------------- 수 정 ------------------
두 코드 모두 동일하게 아래와 같이 표출되나, pyqt6에서는 sys.exit(app.exec())로 변경이 필요합니다.
Reference
- pyqt를 이용한 파이썬 GUI 프로그래밍 : https://wikidocs.net/book/1664
- pyqt reference : https://www.riverbankcomputing.com/static/Docs/PyQt6/index.html
'Python > 3️⃣ 프로그래밍' 카테고리의 다른 글
[PyQt6] QListWidget 활용한 GUI 구현[1/2] (코드 포함) (0) | 2023.10.25 |
---|---|
[PyQt6] 기본적인 구조부터 이해하기 (3) | 2023.10.24 |
QtWidegets 모듈 vs QtWidegets 클래스 (0) | 2023.10.23 |
PyQt5와 PyQt6의 주요 변경사항(표) (0) | 2023.10.23 |
시그널과 슬롯 이해하기 (0) | 2023.10.17 |