[PyQt5] PyQt5 시작하기 - Hello World!
1. PyQt5
PyQt5는 파이썬에서 GUI(그래픽유저인터페이스) 프로그래밍을 도와주는 툴킷 중 하나입니다. 공식웹사이트
PyQt API는 수많은 클래스 및 함수를 포함하는 모듈의 집합으로 자주 사용되는 모듈 목록은 아래와 같습니다.
- QtCore : 다른 모듈에서 사용하는 non-GUI 핵심 클래스
- QtGui : 그래픽 사용자 인터페이스 구성 요소
- QtMultimedia : low-level 멀티미디어 프로그래밍을 위한 클래스
- QtNetwork : 네트워크 프로그래밍을 위한 클래스
- QtOpenGL : OpenGL 지원 클래스
- QtScript : Qt 스크립트를 위한 클래스
- QtSql : SQL 데이터베이스를 위한 클래스
- QtSvg : SVG 파일의 내용을 표시하는 클래스
- QtWebKit : HTML 랜더링 및 편집 클래스
- QtXml : XML 처리를 위한 클래스
- QtWidgets : 기존 데스크톱 스타일의 UI를 만들기 위한 클래스
- QtDesigner : Qt 디자이너 확장을 위한 클래스
1-1. 지원되는 환경
PyQt는 윈도우, 리눅스 및 기타 모든 일반적인 운영체제와 호환됩니다.
1-2. 윈도우 환경에서 PyQt5 설치
파이썬과 호환되는 32비트 또는 64비트 아키텍처용 휠이 제공됩니다.
pip install PyQt5
1-3. 주의사항
PyQt5 API는 이전 버전과 자동으로 호환되지 않습니다. 또한 2.6 이전의 파이썬에서 지원되지 않습니다.
2. PyQt5 - Hello World
PyQt를 사용하여 간단한 GUI 애플리케이션을 만들어 보겠습니다.
# PyQt5 패키지에서 QtCore, QtGui, QtWidgets 모듈을 가져옵니다.
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
# QApplication 클래스의 응용프로그램 개체를 만듭니다.
app = QApplication(sys.argv)
# QWidget 개체가 윈도우 창을 만듭니다.
# QLabel 개체를 추가합니다.
widget = QWidget()
label = QLabel(widget)
# label의 캡션을 "Hello World!"로 설정합니다.
label.setText("Hello World!")
#setGeometry()메서드를 사용하여 창의 크기와 위치를 정의합니다.
widget.setGeometry(100,100,200,50)
label.move(100,25) # label의 위치 (x위치, y위치)
widget.setWindowTitle("PyQt5") #창의 제목
widget.show() # 윈도우 창 보이기
sys.exit(app.exec_())
2-1. 소스코드
# PyQt5 패키지에서 QtCore, QtGui, QtWidgets 모듈을 가져옵니다.
#!pip install PyQt5
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
# QApplication 클래스의 응용프로그램 개체를 만듭니다.
app = QApplication(sys.argv) # 실행 시 인수(sys.argv)를 받아서 처리
widget = QWidget()
label = QLabel(widget)
label.setText("Hello World!")
widget.setGeometry(200,200,200,50) #(x위치, y위치, weight, height)
label.move(100,25)
widget.setWindowTitle("PyQt5")
widget.show()
sys.exit(app.exec_())
QApplication 객체를 생성하면 어떤 명령을 실행할때까지 대기상태에 있고, 이를 구현하기 위해서 무한 루프 상태로 만들게 되는데, 이것이 app.exec_()이다. app이 종료되면 0을 return한다. sys.exit(0)이 되면 python은 루프에서 빠져나와 정상종료를 하게 된다.
3. QWidget 클래스의 위젯 종류
- QLabel : 텍스트 또는 이미지 표시에 사용
- QLineEdit : 한줄의 텍스트를 입력
- QTextEdit : 여러 줄의 텍스트를 입력
- QPushButton : 작업을 호출하는 버튼
- QRadioButton : 여러 옵션 중에서 하나를 선택
- QCheckBox : 둘 이상의 옵션을 선택
- QSpinBox : 정수 값을 증가/감소
- QScrollBar : 스크롤바
- QSlider : 슬라이더
- QComboBox : 선택할 항목의 드롭다운 목록을 제공
- QMenuBar : 메뉴바
- QStatusBar : 상태바
- QToolBar : 툴바
- QListView : 목록 모드 또는 아이콘 모드의 선택 가능한 항목 목록을 제공
- QPixmap : QLabel 또는 QPushButton 개체에 표시할 화면 외 이미지 표현
- QDialog : 상위 창에 정보를 반환
댓글남기기