from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout, \\
QLabel, QTimeEdit, QDateEdit, QDateTimeEdit
from PyQt5.QtCore import Qt, QTime, QDate, QDateTime
import sys
class 시간날짜편집기(QWidget):
def __init__(self):
super().__init__()
self.UI초기화()
def UI초기화(self):
label = QLabel('QTimeEdit')
label.setAlignment(Qt.AlignCenter)
time = QTimeEdit(self)
time.setTime(QTime.currentTime())
time.setTimeRange(QTime(00, 00, 00), QTime.currentTime())
time.setDisplayFormat('a:hh:mm:ss.zzz')
label2 = QLabel('QDateEdit')
label2.setAlignment(Qt.AlignCenter)
date_edit = QDateEdit(self)
date_edit.setDate(QDate.currentDate())
date_edit.setDateRange(QDate(2000, 1, 1), QDate.currentDate())
date_edit.dateChanged.connect(self.dateChange)
label3 = QLabel('이곳에 QDateEdit에서 선택된 값이 나타납니다.')
label3.setAlignment(Qt.AlignCenter)
label4 = QLabel('QDateTimeEdit')
label4.setAlignment(Qt.AlignCenter)
label5 = QLabel(self)
label5.setAlignment(Qt.AlignCenter)
label5.setText(f'QDateTime \\n 현재 시간은 {QDateTime.currentDateTime().toString("yyyy년 MMMM d월 ap hh시 mm분 ss초.zzz")} 입니다.')
dt_edit = QDateTimeEdit(self)
dt_edit.setDateTimeRange(QDateTime(2020, 1, 1, 00, 00, 00),\\
QDateTime(2021, 1, 1, 00, 00, 00))
dt_edit.setDisplayFormat('yyyy.MM.dd hh:mm:ss')
vbox = QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(time)
vbox.addWidget(label2)
vbox.addWidget(date_edit)
vbox.addWidget(label3)
vbox.addWidget(label5)
vbox.addWidget(dt_edit)
self.setLayout(vbox)
self.setWindowTitle('Q Time,Date Edit')
self.setGeometry(300, 300, 400, 300)
self.show()
def dateChange(self):
self.label3.setText(self.date_edit.date().toString('yyyy년 MMMM d일'))
프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 시간날짜편집기()
프로그램무한반복.exec_()
QTime, QDate, QDateTime 라이브러리는 같이 활용되는 함수(현재시간,날짜 구하기 등)입니다.
time = QTimeEdit(self)
time.setTime(QTime.currentTime())
time.setTimeRange(QTime(00, 00, 00), QTime.currentTime())
time.setDisplayFormat('a:hh:mm:ss.zzz')
예시)
출처: https://doc.qt.io/qt-5/qdatetime.html
단, QDate나 QTime과 같은 단일 날짜, 시간 만 보여줄 경우 그 형식에 맞춰 표현식을 써야함
label2 = QLabel('QDateEdit')
label2.setAlignment(Qt.AlignCenter)
self.date_edit = QDateEdit(self)
self.date_edit.setDate(QDate.currentDate())
self.date_edit.setDateRange(QDate(2000, 1, 1), QDate.currentDate())
self.date_edit.dateChanged.connect(self.dateChange)
self.label3 = QLabel("이곳에 QDateEdit에서 선택된 값이 나타납니다.")
self.label3.setAlignment(Qt.AlignCenter)
def dateChange(self):
self.label3.setText(self.date_edit.date().toString('yyyy년 MMMM d일'))