PyQt개발강좌, QLabel, QPushButton, QLineEdit 등 기본 위젯 사용법

PyQt는 Python에서 Qt 어플리케이션을 개발하기 위해 사용되는 라이브러리로, 강력하면서도 유연한 GUI 애플리케이션을 만들 수 있도록 도와줍니다. 이 블로그 글에서는 PyQt의 기본 위젯인 QLabel, QPushButton, QLineEdit의 사용법에 대해 자세히 설명하고, 각각의 위젯을 활용한 예제 코드도 제공할 것입니다.

1. QLabel

QLabel은 텍스트, 이미지 등을 화면에 표시하기 위한 위젯입니다. 주로 다른 위젯들과 함께 사용되어 정보 제공이나 사용자 안내 역할을 합니다.

1.1 QLabel의 기본 사용법

from PyQt5.QtWidgets import QApplication, QLabel, QWidget

app = QApplication([])
window = QWidget()
window.setWindowTitle('QLabel 예제')
label = QLabel('안녕하세요, PyQt!', window)
label.move(50, 50)
window.setGeometry(100, 100, 300, 200)
window.show()
app.exec_()

1.2 QLabel의 스타일 변경하기

QLabel의 스타일을 변경할 수 있는 다양한 속성이 있으며, 이 속성을 통해 글꼴, 색상, 정렬 등을 조정할 수 있습니다. 다음 예제에서는 QLabel의 글꼴 크기와 색상을 수정합니다.

label.setStyleSheet("font-size: 20px; color: blue;")

이 코드를 통해 QLabel의 글꼴 크기를 20픽셀로 변경하고, 색상을 파란색으로 지정할 수 있습니다.

2. QPushButton

QPushButton은 버튼을 만들기 위한 위젯입니다. 사용자가 클릭하면 특정 작업이 수행되도록 할 수 있습니다. 일반적으로 form 내에서 데이터를 제출하거나 다른 작업을 수행하는 데 사용됩니다.

2.1 QPushButton의 기본 사용법

from PyQt5.QtWidgets import QApplication, QPushButton, QWidget

app = QApplication([])
window = QWidget()
window.setWindowTitle('QPushButton 예제')
button = QPushButton('클릭하세요!', window)
button.move(50, 50)
window.setGeometry(100, 100, 300, 200)
window.show()
app.exec_()

2.2 버튼 클릭 이벤트 처리하기

버튼을 클릭했을 때 발생하는 이벤트를 처리하기 위한 방법으로 clicked 신호를 사용할 수 있습니다. 버튼을 클릭하면 특정 함수를 호출하도록 설정할 수 있습니다.

def on_button_click():
    print('버튼이 클릭되었습니다!')

button.clicked.connect(on_button_click)

3. QLineEdit

QLineEdit는 사용자로부터 텍스트 입력을 받을 수 있는 위젯입니다. 주로 사용자 인증, 검색, 데이터 입력과 같은 기능을 구현할 때 사용됩니다.

3.1 QLineEdit의 기본 사용법

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget

app = QApplication([])
window = QWidget()
window.setWindowTitle('QLineEdit 예제')
input_field = QLineEdit(window)
input_field.move(50, 50)
input_field.setPlaceholderText('여기에 입력하세요...')
window.setGeometry(100, 100, 300, 200)
window.show()
app.exec_()

3.2 QLineEdit에서 입력값 가져오기

사용자가 입력한 값을 가져오기 위해서는 text() 메서드를 사용할 수 있습니다. 버튼 클릭 시 입력된 텍스트를 출력하는 예제를 보겠습니다.

button = QPushButton('확인', window)
button.move(50, 100)

def show_input():
    print('사용자 입력: ', input_field.text())

button.clicked.connect(show_input)

4. 기본 위젯을 활용한 종합 예제

앞서 소개한 QLabel, QPushButton, QLineEdit 위젯을 모두 활용하여 간단한 GUI 어플리케이션을 만들어 보겠습니다. 이 프로그램은 사용자로부터 이름을 입력받아, 해당 이름으로 인사하는 기능을 갖고 있습니다.

from PyQt5.QtWidgets import QApplication, QLabel, QLineEdit, QPushButton, QWidget

def greet_user():
    name = name_input.text()
    greeting_label.setText(f'안녕하세요, {name}!')

app = QApplication([])
window = QWidget()
window.setWindowTitle('인사하기 앱')

name_input = QLineEdit(window)
name_input.setPlaceholderText('이름을 입력하세요...')
name_input.move(50, 50)

greet_button = QPushButton('인사하기', window)
greet_button.move(50, 100)
greet_button.clicked.connect(greet_user)

greeting_label = QLabel('', window)
greeting_label.move(50, 150)

window.setGeometry(100, 100, 300, 250)
window.show()
app.exec_()

결론

이번 포스트에서는 PyQt의 기본 위젯인 QLabel, QPushButton, QLineEdit의 사용법과 이들을 활용한 간단한 예제를 살펴보았습니다. 이러한 기본 위젯은 PyQt를 통해 GUI 어플리케이션을 설계하고 구현하는 데 필수적인 요소들입니다. 더 깊이 있는 개발을 위해 다양한 위젯과 그 조합에 대해 실험해 보시기 바랍니다.


이 블로그 글이 PyQt를 배우는 데 도움이 되었기를 바랍니다. 추가 질문이나 피드백은 댓글로 남겨주세요!