파이썬 프로그래밍

파이썬 gui pyqt5 위젯 소개 및 사용 방법 예제

코니코니 2023. 1. 2. 15:00
반응형

파이썬 gui pyqt5 위젯 소개 및 사용 방법 예제


다음은 Python의 PyQt5 기본 사항에 대한 자세한 설명입니다.

소개
PyQt5는 Qt5 애플리케이션 프레임워크에 대한 Python 바인딩 세트를 제공하는 Python 라이브러리입니다. 데스크톱 및 모바일 개발을 모두 지원하는 Qt 5 툴킷을 위한 포괄적인 Python 바인딩 세트입니다.

Qt는 Qt Company에서 개발하고 전 세계 많은 회사에서 사용하는 인기 있는 크로스 플랫폼 애플리케이션 프레임워크입니다. GUI 툴킷, 네트워킹 라이브러리, 데이터베이스 지원 등을 포함하여 애플리케이션 구축을 위한 광범위한 기능을 제공합니다. PyQt5를 사용하면 개발자가 Pythonic API로 애플리케이션을 만들면서 Qt 프레임워크의 성능과 기능을 계속 활용할 수 있습니다.

설치
PyQt5를 사용하려면 먼저 설치해야 합니다. 이를 수행하는 가장 쉬운 방법은 Python 패키지 관리자인 pip를 사용하는 것입니다. 터미널 또는 명령 프롬프트를 열고 다음 명령을 입력합니다.

pip install pyqt5
pip install pyside2

 

이렇게 하면 PyQt5 패키지와 모든 종속 항목이 설치됩니다. 원하는 경우 소스에서 PyQt5를 설치할 수도 있습니다.

첫 번째 PyQt5 애플리케이션
이제 PyQt5를 설치했으므로 간단한 애플리케이션을 만들어 시작해 보겠습니다.

다음은 빈 창을 표시하는 최소한의 PyQt5 애플리케이션입니다.

import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)
window = QWidget()
window.show()
sys.exit(app.exec_())

 

이 코드를 한 줄씩 살펴보겠습니다.

import sys: 이 줄은 인터프리터가 사용하거나 유지 관리하는 일부 변수 및 함수에 대한 액세스를 제공하는 sys 모듈을 가져옵니다.

from PyQt5.QtWidgets import QApplication, QWidget: 이 줄은 PyQt5.QtWidgets 모듈에서 QApplication 및 QWidget 클래스를 가져옵니다. QApplication은 기본 애플리케이션 클래스이고 QWidget은 그래픽 사용자 인터페이스(GUI) 위젯을 만들기 위한 기본 클래스입니다.

app = QApplication(sys.argv): 이 줄은 QApplication 인스턴스를 생성합니다. sys.argv는 스크립트에 전달된 명령줄 인수 목록입니다.

window = QWidget(): 이 줄은 QWidget 인스턴스를 만듭니다. QWidget은 제목 표시줄, 테두리 및 기타 표준 창 장식이 있는 최상위 창입니다.

window.show(): 이 줄은 창을 보여줍니다.

sys.exit(app.exec_()): 이 라인은 애플리케이션의 이벤트 루프를 시작합니다. 이벤트 루프는 이벤트를 처리하고 애플리케이션의 위젯으로 발송합니다. app.exec_()는 스크립트를 종료하기 위해 sys.exit()에 전달되는 응용 프로그램의 종료 코드를 반환합니다.

이 애플리케이션을 실행하려면 코드를 main.py라는 파일에 저장하고 Python으로 실행합니다. 그러면 빈 창이 열립니다. 제목 표시줄에서 닫기 버튼을 클릭하거나 Alt+F4를 눌러 창을 닫을 수 있습니다.


pyqt5 위젯 소개
아래와 같이 PyQt5에서 사용할 수 있는 다양한 위젯(GUI의 요소)도 있습니다.

QLabel: 이 위젯은 텍스트나 이미지를 표시하는 데 사용됩니다.
QLineEdit: 이 위젯은 한 줄의 텍스트를 입력하는 데 사용됩니다.
QTextEdit: 이 위젯은 여러 줄의 텍스트를 입력하고 표시하는 데 사용됩니다.
QPushButton: 이 위젯은 사용자가 클릭할 수 있는 버튼을 만드는 데 사용됩니다.
QCheckBox: 이 위젯은 사용자가 토글할 수 있는 체크박스를 만드는 데 사용됩니다.
QRadioButton: 이 위젯은 사용자가 선택할 수 있는 라디오 버튼을 만드는 데 사용됩니다.
QComboBox: 이 위젯은 사용자가 선택할 수 있는 옵션의 드롭다운 목록을 만드는 데 사용됩니다.
QListWidget: 이 위젯은 사용자가 선택할 수 있는 항목 목록을 표시하는 데 사용됩니다.
QTreeWidget: 이 위젯은 사용자가 확장 및 축소할 수 있는 항목 트리를 표시하는 데 사용됩니다.
QTableWidget: 이 위젯은 사용자가 편집할 수 있는 표 형식의 데이터를 표로 표시하는 데 사용됩니다.

이러한 각 위젯에는 모양과 동작을 변경하기 위해 수정할 수 있는 여러 속성이 있습니다. 예를 들어 QLabel 위젯이 표시하는 텍스트는 "setText" 메서드를 사용하여 설정할 수 있으며 텍스트의 글꼴은 "setFont" 메서드를 사용하여 변경할 수 있습니다. 위젯의 크기와 위치는 "setGeometry" 메서드를 사용하여 설정할 수 있으며, 위젯의 배경색은 "setStyleSheet" 메서드를 사용하여 변경할 수 있습니다.

이러한 기본 위젯 외에도 PyQt5는 다음과 같은 더 많은 특수 위젯을 제공합니다.

QProgressBar: 이 위젯은 작업 진행률을 표시하는 데 사용됩니다.
QSlider: 이 위젯은 트랙을 따라 핸들을 밀어 범위에서 값을 선택하는 데 사용됩니다.
QSpinBox: 이 위젯은 위아래 버튼을 클릭하거나 필드에 값을 입력하여 정수 값을 입력하는 데 사용됩니다.
QDateEdit: 달력 위젯에서 날짜 값을 선택하여 입력하는 위젯입니다.
QTimeEdit: 이 위젯은 시계 위젯에서 선택하여 시간 값을 입력하는 데 사용됩니다.
QDateTimeEdit: 이 위젯은 달력 및 시계 위젯에서 선택하여 날짜 및 시간 값을 입력하는 데 사용됩니다.


PyQt5 애플리케이션에서 이러한 위젯을 사용하려면 레이아웃에 추가해야 합니다. 레이아웃은 창 내부의 위젯을 구조화된 방식으로 정렬하는 데 사용됩니다. 다음을 포함하여 PyQt5에서 사용할 수 있는 여러 가지 유형의 레이아웃이 있습니다.

QHBoxLayout: 이 레이아웃은 위젯을 왼쪽에서 오른쪽으로 수평으로 정렬합니다.
QVBoxLayout: 이 레이아웃은 위젯을 위에서 아래로 수직으로 정렬합니다.
QGridLayout: 이 레이아웃은 위젯을 행과 열의 그리드에 배열합니다.
QFormLayout: 이 레이아웃은 왼쪽에 레이블이 있고 오른쪽에 입력 필드가 있는 2열 형식으로 위젯을 정렬합니다.

레이아웃이 생성되고 위젯이 추가되면 창의 "setLayout" 메서드를 호출하여 창에 적용할 수 있습니다. 그런 다음 "show" 메서드를 호출하여 창을 사용자에게 표시할 수 있습니다.

아래는 간단한 위젯 사용 방법에 대해서 설명합니다.

Python에서 PyQt5 푸시 버튼을 사용하는 방법의 예입니다.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

def on_button_clicked():
    print("Button clicked!")

app = QApplication(sys.argv)
window = QWidget()
button = QPushButton("Click me", window)
button.clicked.connect(on_button_clicked)
window.show()
sys.exit(app.exec_())

 

이렇게 하면 "Click me"라는 버튼이 있는 간단한 창이 생성됩니다. 버튼을 클릭하면 on_button_clicked 함수가 호출되어 "Button clicked!"를 출력합니다.

프로그램이 작동하려면 필요한 PyQt5 모듈을 가져와 QApplication 인스턴스를 만들어야 합니다. QApplication 인스턴스는 이벤트 루프를 처리하고 이벤트 디스패처를 제공합니다.

Python에서 PyQt5 텍스트 보기를 사용하려면 QTextEdit 위젯을 사용해야 합니다. 사용 방법에 대한 간단한 예는 다음과 같습니다.

import sys
from PyQt5.QtWidgets import QApplication, QTextEdit

app = QApplication(sys.argv)
text_edit = QTextEdit()
text_edit.show()
sys.exit(app.exec_())

 

그러면 텍스트 편집 위젯이 포함된 새 창이 생성됩니다. 그런 다음 setText 메소드를 사용하여 위젯에 표시되는 텍스트를 설정하고 append 메서드를 사용하여 위젯 끝에 새 텍스트를 추가할 수 있습니다. setHtml 메서드를 사용하여 HTML 서식을 사용하여 텍스트를 설정할 수도 있습니다.

다음은 텍스트를 설정하고 새 텍스트를 위젯에 추가하는 방법의 예입니다.

text_edit.setText("This is some initial text.")
text_edit.append("This is some additional text.")

 

글꼴, 정렬 및 색상과 같은 다양한 속성을 사용하여 텍스트 편집 위젯의 모양을 사용자 지정할 수도 있습니다.

보다 자세한 위젯 사용 방법은 아래 공식 링크를 참고하세요.
https://doc.qt.io/qt-5/qtwidgets-module.html

반응형