본문 바로가기

프로그래밍/PyQt5 GUI

30. QDateEdit

QDateEdit 위젯은 사용자에게 날짜를 선택, 편집하도록 할 때 사용합니다. (QDateEdit 공식 문서) 참고

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


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

    def initUI(self):
        lbl = QLabel('QDateEdit')

        dateedit = QDateEdit(self)
        dateedit.setDate(QDate.currentDate())
        dateedit.setMinimumDate(QDate(1900, 1, 1))
        dateedit.setMaximumDate(QDate(2100, 12, 31))
        # dateedit.setDateRange(QDate(1900, 1, 1), QDate(2100, 12, 31))

        vbox = QVBoxLayout()
        vbox.addWidget(lbl)
        vbox.addWidget(dateedit)
        vbox.addStretch()

        self.setLayout(vbox)

        self.setWindowTitle('QDateEdit')
        self.setGeometry(300, 300, 300, 200)
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

30-2 설명

dateedit = QDateEdit(self)
dateedit.setDate(QDate.currentDate())
dateedit.setMinimumDate(QDate(1900, 1, 1))
dateedit.setMaximumDate(QDate(2100, 12, 31))
# dateedit.setDateRange(QDate(1900, 1, 1), QDate(2100, 12, 31))
  • QDateEdit 위젯을 이용해서 날짜 편집 위젯을 하나 만듭니다.
  • setDate 메서드에 QDate.currentDate() 를 입력해서 현재 날짜로 표시되도록 합니다.
  • setMinimumDate() 와 setMaximumDate() 메서드를 이용하면 사용자가 선택할 수 있는 날짜의 범위를 제한할 수 있습니다.
  • 기본으로 최소 날짜는 1752년 9월 14일로 설정되어 있고, 최대 날짜는 9999년 12월 31일로 설정되어 있습니다.
  • 최소 날짜는 최소 100년 1월 1일 이상이어야 합니다.
  • setDateRange 메서드는 setMinimumDate 와 setMaximumDate 를 동시에 사용하는 것과 같습니다.
vbox = QVBoxLayout()
vbox.addWidget(lbl)
vbox.addWidget(dateedit)
vbox.addStretch()

self.setLayout(vbox)

수직 박스 레이아웃을 이용해서 레벨과 날짜 편집 위젯을 수직으로 배치하고, 전체 위젯의 레이아웃으로 설정합니다.

 

30-3 결과

'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글

32.QDateTimeEdit  (0) 2021.07.27
31. QTimeEdit  (0) 2021.07.27
29. QDoubleSpinBox  (0) 2021.07.27
28. QSpinBox  (0) 2021.07.26
27. QClendarWidget  (0) 2021.07.26