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_())

image

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 : 상위 창에 정보를 반환

image

댓글남기기