728x90
반응형
PyQt5의 QDateEdit 위젯을 자세히 알아보고, 이를 사용하여 날짜 입력 기능을 구현하는 방법을 설명합니다. QDateEdit 위젯은 사용자가 날짜를 선택하고 편집할 수 있도록 하는 유용한 UI 요소입니다. 다양한 설정 옵션과 이벤트 핸들링을 통해 QDateEdit을 효과적으로 활용할 수 있습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QDateEdit, QLabel
from PyQt5.QtCore import QDate
class DateEditDemo(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 수직 박스 레이아웃 생성
vbox = QVBoxLayout()
# QDateEdit 위젯 생성 및 초기 설정
self.dateEdit = QDateEdit(self)
# 초기 날짜를 현재 날짜로 설정
self.dateEdit.setDate(QDate.currentDate())
# 달력 팝업 활성화
self.dateEdit.setCalendarPopup(True)
# 선택 가능한 최소 날짜 설정
self.dateEdit.setMinimumDate(QDate(2000, 1, 1))
# 선택 가능한 최대 날짜 설정
self.dateEdit.setMaximumDate(QDate(2100, 12, 31))
# 날짜 형식 설정 (예: 2024-01-01)
self.dateEdit.setDisplayFormat('yyyy-MM-dd')
# 날짜 변경 이벤트 연결
self.dateEdit.dateChanged.connect(self.dateChanged)
# QLabel 생성 및 초기 텍스트 설정
self.label = QLabel(self)
self.label.setText("Selected Date: " + self.dateEdit.date().toString())
# 레이아웃에 위젯 추가
vbox.addWidget(self.dateEdit)
vbox.addWidget(self.label)
# 메인 레이아웃 설정
self.setLayout(vbox)
# 윈도우 설정
self.setWindowTitle('QDateEdit Demo')
self.setGeometry(100, 100, 300, 200)
self.show()
def dateChanged(self, date):
# 날짜 변경 시 라벨 텍스트 업데이트
self.label.setText("Selected Date: " + date.toString())
# 날짜 유효성 검사
if date.isValid():
print("Valid date:", date.toString())
else:
print("Invalid date")
if __name__ == '__main__':
# 애플리케이션 생성
app = QApplication(sys.argv)
# 데모 애플리케이션 인스턴스 생성
ex = DateEditDemo()
# 애플리케이션 실행
sys.exit(app.exec_())
코드 설명
- QDateEdit 위젯 생성 및 설정:
- QDateEdit(self)로 위젯을 생성하고, setDate(QDate.currentDate())로 현재 날짜를 초기값으로 설정합니다.
- setCalendarPopup(True)로 달력 팝업을 활성화합니다.
- setMinimumDate(QDate(2000, 1, 1))와 setMaximumDate(QDate(2100, 12, 31))를 사용하여 선택 가능한 날짜 범위를 설정합니다.
- setDisplayFormat('yyyy-MM-dd')로 날짜 형식을 설정합니다.
- dateChanged 시그널을 dateChanged 슬롯에 연결하여, 사용자가 날짜를 변경할 때마다 선택된 날짜를 라벨에 표시합니다.
- 이벤트 연결:
- dateChanged 슬롯에서 날짜가 변경될 때 라벨의 텍스트를 업데이트하고, 날짜가 유효한지 확인합니다.
- 레이아웃 설정:
- QVBoxLayout을 사용하여 위젯을 수직으로 배치하고, QDateEdit과 QLabel을 레이아웃에 추가합니다.
이 소스 코드는 QDateEdit의 다양한 기능을 포함하고 있으며, PyQt5를 사용하여 날짜 선택 애플리케이션을 만드는 데 필요한 모든 것을 설명합니다.
728x90
반응형
'프로그래밍 > python' 카테고리의 다른 글
PyQt5로 색상 선택 다이얼로그 만들기 (0) | 2024.06.07 |
---|---|
PyQt5 QTextBrowser 사용법 가이드 (0) | 2024.06.04 |
PyQt5 QSpinBox 사용 방법 가이드 (0) | 2024.06.02 |
PyQt5 QCalendarWidget 사용법 및 속성 (0) | 2024.05.30 |
PyQt5 QPixmap 사용법과 관련 속성 (0) | 2024.05.29 |