본문 바로가기
Programming & Platform

파이썬 PyQt 완벽 가이드 - 초보자를 위한 소개와 활용 예제

by 코드스니펫 2024. 11. 10.
반응형

파이썬에서 GUI(Graphical User Interface)를 개발할 때 가장 인기 있는 도구 중 하나가 바로 PyQt입니다.

 

PyQt는 Qt 프레임워크를 파이썬에 통합한 라이브러리로, 다양한 운영체제에서 동일하게 동작하는 데스크탑 애플리케이션을 손쉽게 개발할 수 있게 도와줍니다.

 

이 글에서는 PyQt의 기본 개념과 활용법을 예제와 함께 소개해 드리겠습니다.

 

파이썬 PyQt 활용하기
파이썬 PyQt 활용하기

 

파이썬 PyQt 완벽 가이드 - 초보자를 위한 소개와 활용 예제

 

PyQt란 무엇인가?

 

PyQt는 C++로 작성된 크로스 플랫폼 GUI 프레임워크인 Qt를 파이썬에서 사용할 수 있도록 포팅한 라이브러리입니다.

 

PyQt를 사용하면 윈도우, 맥, 리눅스여러 운영체제에서 실행 가능한 GUI 애플리케이션을 손쉽게 개발할 수 있습니다.

 

파이썬 PyQt 활용하기
파이썬 PyQt 활용하기

 

PyQt는 직관적인 디자인 도구와 강력한 기능을 제공하여 복잡한 UI를 효율적으로 구성할 수 있습니다.

 

 

PyQt 설치 방법

 

PyQt를 설치하려면 다음과 같은 명령어를 사용하면 됩니다.

 

pip install pyqt6

 

`pyqt6` 대신 `pyqt5`를 설치할 수도 있습니다.

 

버전 6은 최신이지만, 많은 레거시 프로젝트가 여전히 버전 5를 사용하고 있기 때문에 선택은 개발 환경에 따라 달라질 수 있습니다.

 

 

PyQt 기본 예제: 간단한 윈도우 만들기

 

먼저, PyQt를 사용하여 간단한 창을 띄우는 예제를 만들어 보겠습니다.

 

import sys
from PyQt6.QtWidgets import QApplication, QWidget

# 애플리케이션 생성
app = QApplication(sys.argv)

# 윈도우 생성
window = QWidget()
window.setWindowTitle("PyQt 첫 윈도우")
window.resize(400, 300)
window.show()

# 애플리케이션 실행
sys.exit(app.exec())

 

 

결과: 위 코드를 실행하면 400x300 크기의 빈 창이 나타납니다.

 

파이썬 PyQt 활용하기
파이썬 PyQt 활용하기

 

PyQt 위젯 활용: 버튼과 라벨 추가하기

 

이제 버튼과 라벨을 추가하여 사용자 인터페이스를 개선해 보겠습니다.

 

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("PyQt 버튼 예제")
        self.resize(300, 200)
        
        # 레이아웃 설정
        layout = QVBoxLayout()

        # 라벨 생성
        self.label = QLabel("안녕하세요, PyQt!", self)
        layout.addWidget(self.label)

        # 버튼 생성
        btn = QPushButton("클릭하세요", self)
        btn.clicked.connect(self.on_button_click)
        layout.addWidget(btn)

        self.setLayout(layout)

    def on_button_click(self):
        self.label.setText("버튼이 클릭되었습니다!")

# 메인 애플리케이션 실행
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec())

 

  • QPushButton: 버튼을 생성하고 클릭 이벤트를 처리합니다.
  • QLabel: 텍스트를 표시하는 라벨입니다.
  • QVBoxLayout: 위젯들을 수직으로 배치하는 레이아웃입니다.
  • `on_button_click()`: 버튼 클릭 시 실행되는 함수입니다.

 

결과: 버튼을 클릭하면 라벨의 텍스트가 변경됩니다.

 

파이썬 PyQt 활용하기
파이썬 PyQt 활용하기

 

파이썬 PyQt 활용하기
파이썬 PyQt 활용하기

 

 

PyQt 활용 예제: 입력 폼과 메시지 박스 만들기

 

다음은 사용자 입력을 받아 처리하고, 메시지 박스를 출력하는 예제입니다.

 

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLineEdit, QPushButton, QLabel, QVBoxLayout, QMessageBox

class InputWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("PyQt 입력 폼 예제")
        self.resize(350, 150)
        
        layout = QVBoxLayout()
        
        # 라벨
        self.label = QLabel("이름을 입력하세요:", self)
        layout.addWidget(self.label)
        
        # 입력 필드
        self.input_field = QLineEdit(self)
        layout.addWidget(self.input_field)
        
        # 버튼
        btn = QPushButton("확인", self)
        btn.clicked.connect(self.show_message)
        layout.addWidget(btn)

        self.setLayout(layout)

    def show_message(self):
        name = self.input_field.text()
        if name:
            QMessageBox.information(self, "입력 결과", f"안녕하세요, {name}님!")
        else:
            QMessageBox.warning(self, "오류", "이름을 입력하세요.")

# 애플리케이션 실행
app = QApplication(sys.argv)
window = InputWindow()
window.show()
sys.exit(app.exec())

 

  • QLineEdit: 텍스트 입력 필드입니다.
  • QMessageBox: 팝업 메시지를 표시합니다.
  • `show_message()`: 입력값을 가져와 메시지 박스에 표시합니다.

 

결과: 사용자가 이름을 입력한 후 "확인" 버튼을 누르면 환영 메시지가 팝업됩니다.

 

파이썬 PyQt 활용하기
파이썬 PyQt 활용하기

 

파이썬 PyQt 활용하기
파이썬 PyQt 활용하기

 

 

PyQt를 활용한 실전 프로젝트 예제

 

PyQt를 활용하여 다음과 같은 애플리케이션을 개발할 수 있습니다.

 

프로젝트 예시 설명
메모장 텍스트 파일을 열고, 편집, 저장할 수 있는 기능
계산기 기본적인 사칙연산이 가능한 계산기 GUI
파일 탐색기 파일 및 디렉토리를 탐색하고 열 수 있는 도구
데이터 시각화 도구 Matplotlib와 연동하여 데이터를 시각적으로 표시

 

 

각 프로젝트에서 PyQt의 다양한 기능(레이아웃, 이벤트 처리, 파일 다루기 등)을 활용할 수 있습니다.

 

마치며

이 글에서는 PyQt를 활용한 GUI 애플리케이션 개발의 기초부터 간단한 예제까지 살펴보았습니다.

 

PyQt는 크로스 플랫폼 지원과 강력한 기능으로 인해 파이썬 GUI 개발에 널리 사용됩니다.

 

이제 PyQt를 활용하여 자신만의 데스크탑 애플리케이션을 만들어 보세요!

 

앞으로 더욱 복잡한 프로젝트를 진행하면서 PyQt의 강력한 기능을 활용해 개발 역량을 높일 수 있을 것입니다.

 

 

▼ 함께 보면 좋은 글 ▼

라이즈 RIIZE, 미국 소니 뮤직엔터테인먼트 자회사인 RCA 레코드 레이블과 계약
파이썬 matplotlib으로 차트(pyplot) 만들 때 한글 깨짐
신형 혼다 어코드 하이브리드 (11세대) 가격, 연비, 승차감, 매력
JavaScript 콜백함수 사용법, 콜백 지옥, 에러 처리, 관련 소스 코드
사이썬 3.0 출시 - 파이썬 코드로 C언어 컴파일 하다
해외여행 필수 준비 - 큐코드(Q-CODE) 입력 방법과 제출 국가 안내
캐시워크 추천인코드 KRH9TND, 걸으면 돈이되는 만보기 앱!
JavaScript에서 조합(Combination) 구하기, 완전탐색 코드 상세 분석
파이썬 큰 따옴표, 작은 따옴표 출력