본문 바로가기
카테고리 없음

초보자를 위한 PyQt5 GUI 개발 입문 가이드

by 가치정보인 2025. 3. 23.
반응형

PyQt5는 파이썬을 활용한 GUI(그래픽 사용자 인터페이스) 개발을 위한 강력한 프레임워크입니다. 초보자도 쉽게 따라 할 수 있도록 PyQt5의 기본 개념부터 설치, 간단한 예제까지 자세히 설명합니다.

1. PyQt5란? 초보자를 위한 개념 정리

PyQt5는 Qt 프레임워크를 기반으로 한 파이썬 GUI 라이브러리로, 다양한 운영체제에서 실행 가능한 데스크톱 애플리케이션을 개발할 수 있습니다. 초보자를 위해 PyQt5의 기본 개념과 특징을 설명합니다.

PyQt5의 특징

  • 크로스 플랫폼 지원: 윈도우, 리눅스, macOS에서 동일한 코드로 실행 가능
  • 강력한 UI 디자인: Qt Designer를 사용하면 코드 없이 GUI 설계 가능
  • 다양한 위젯 제공: 버튼, 라벨, 입력창 등 기본 UI 요소 포함
  • QSS 스타일 적용 가능: CSS와 유사한 스타일시트를 활용해 UI 디자인 가능

PyQt5 설치 방법

  1. Python이 설치되어 있는지 확인 
  2. python --version
  3. PyQt5와 필수 패키지 설치
    pip install PyQt5 PyQt5-tools
  4. 설치가 완료되었는지 확인
    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 구성, 버튼과 입력창 활용까지 살펴

반응형