반응형
PyQt5는 파이썬을 활용한 GUI(그래픽 사용자 인터페이스) 개발을 위한 강력한 프레임워크입니다. 초보자도 쉽게 따라 할 수 있도록 PyQt5의 기본 개념부터 설치, 간단한 예제까지 자세히 설명합니다.
1. PyQt5란? 초보자를 위한 개념 정리
PyQt5는 Qt 프레임워크를 기반으로 한 파이썬 GUI 라이브러리로, 다양한 운영체제에서 실행 가능한 데스크톱 애플리케이션을 개발할 수 있습니다. 초보자를 위해 PyQt5의 기본 개념과 특징을 설명합니다.
PyQt5의 특징
- 크로스 플랫폼 지원: 윈도우, 리눅스, macOS에서 동일한 코드로 실행 가능
- 강력한 UI 디자인: Qt Designer를 사용하면 코드 없이 GUI 설계 가능
- 다양한 위젯 제공: 버튼, 라벨, 입력창 등 기본 UI 요소 포함
- QSS 스타일 적용 가능: CSS와 유사한 스타일시트를 활용해 UI 디자인 가능
PyQt5 설치 방법
- Python이 설치되어 있는지 확인
python --version
- PyQt5와 필수 패키지 설치
pip install PyQt5 PyQt5-tools
- 설치가 완료되었는지 확인
import PyQt5 print(PyQt5.__version__)
설치가 완료되었다면 이제 PyQt5를 활용한 GUI 개발을 시작할 수 있습니다.
2. PyQt5 기본 GUI 프로그램 만들기
PyQt5의 기본 구조를 이해하기 위해 간단한 GUI 프로그램을 만들어 보겠습니다.
기본 코드 구조
import sys
from PyQt5.QtWidgets import QApplication, QWidget
# 애플리케이션 생성
app = QApplication(sys.argv)
# 기본 창 만들기
window = QWidget()
window.setWindowTitle("PyQt5 기본 창")
window.resize(400, 300)
window.show()
# 실행
sys.exit(app.exec_())
코드 설명
QApplication
: 프로그램 실행을 위한 객체QWidget
: 기본 창을 생성하는 위젯setWindowTitle()
: 창 제목 설정resize()
: 창 크기 조정show()
: 창을 화면에 표시sys.exit(app.exec_())
: 이벤트 루프 실행
위 코드를 실행하면 400x300 크기의 PyQt5 GUI 창이 나타납니다.
3. PyQt5에서 버튼과 입력창 추가하기
이제 버튼과 입력창을 추가하여 더 실용적인 GUI를 만들어보겠습니다.
버튼과 입력창이 있는 GUI 코드
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLineEdit, QLabel
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('PyQt5 버튼 & 입력창')
self.resize(400, 200)
# 레이아웃 설정
layout = QVBoxLayout()
# 입력창
self.text_input = QLineEdit(self)
layout.addWidget(self.text_input)
# 버튼
self.button = QPushButton('클릭하세요', self)
self.button.clicked.connect(self.onButtonClick)
layout.addWidget(self.button)
# 출력 라벨
self.label = QLabel('결과가 여기에 표시됩니다.', self)
layout.addWidget(self.label)
self.setLayout(layout)
def onButtonClick(self):
text = self.text_input.text()
self.label.setText(f'입력한 내용: {text}')
app = QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
코드 설명
QVBoxLayout()
: 위젯을 세로로 정렬하는 레이아웃QLineEdit()
: 텍스트 입력창QPushButton()
: 버튼 생성 및 클릭 이벤트 연결QLabel()
: 결과를 표시할 라벨clicked.connect(self.onButtonClick)
: 버튼 클릭 시 실행할 함수 지정
이 프로그램을 실행하면 입력창에 텍스트를 입력한 후 버튼을 클릭하면 입력한 내용이 라벨에 표시됩니다.
결론
PyQt5는 파이썬을 활용한 GUI 개발에 최적화된 강력한 프레임워크입니다. 설치부터 기본적인 GUI 구성, 버튼과 입력창 활용까지 살펴
반응형