Qt/PyQt5 강좌

PyQt5 QDateEdit 사용 예제

webnautes 2024. 9. 4. 23:49
반응형

PyQt5 QDateEdit 사용 예제입니다.



2024. 9. 4 최초작성



QDateEdit를 클릭하여 달력에서 시작날짜를 선택합니다.

 



QDateEdit를 클릭하여 달력에서 끝 날짜를 선택합니다.

 




기간 계산 버튼을 클릭하면 기간을 계산하여 출력해줍니다.

 



사용한 전체 코드입니다.

 

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QDateEdit
from PyQt5.QtCore import QDate

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

    def initUI(self):
        layout = QVBoxLayout()

        # 시작 날짜 입력
        start_layout = QHBoxLayout()
        start_layout.addWidget(QLabel('시작 날짜:'))
        self.start_date = QDateEdit()
        self.start_date.setCalendarPopup(True)
        self.start_date.setDate(QDate.currentDate())
        start_layout.addWidget(self.start_date)
        layout.addLayout(start_layout)

        # 끝 날짜 입력
        end_layout = QHBoxLayout()
        end_layout.addWidget(QLabel('끝 날짜:'))
        self.end_date = QDateEdit()
        self.end_date.setCalendarPopup(True)
        self.end_date.setDate(QDate.currentDate())
        end_layout.addWidget(self.end_date)
        layout.addLayout(end_layout)

        # 계산 버튼
        calc_button = QPushButton('기간 계산')
        calc_button.clicked.connect(self.calculate_period)
        layout.addWidget(calc_button)

        # 결과 표시
        self.result_label = QLabel('')
        layout.addWidget(self.result_label)

        self.setLayout(layout)
        self.setWindowTitle('날짜 기간 계산기')
        self.setGeometry(300, 300, 300, 200)

    def calculate_period(self):
        start = self.start_date.date()
        end = self.end_date.date()
        days = start.daysTo(end) + 1  # 종료일을 포함하기 위해 1을 더함
        self.result_label.setText(f'입력한 기간은 {days}일 입니다.')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    calculator = DateRangeCalculator()
    calculator.show()
    sys.exit(app.exec_())




반응형