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를 배우는 데 도움이 되었기를 바랍니다. 추가 질문이나 피드백은 댓글로 남겨주세요!