/
DateTime.py
96 lines (77 loc) · 3.97 KB
/
DateTime.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
from datetime import date
import sys
from PyQt5.QtCore import QDate, QTime, QDateTime, Qt
from PyQt5.QtWidgets import QLabel, QApplication, QWidget, QDateTimeEdit, QDateEdit, QTimeEdit, QVBoxLayout, QCalendarWidget
EMOTION = { # 1
'周一': '(╯°Д°)╯︵ ┻━┻',
'周二': '(╯ ̄Д ̄)╯╘═╛',
'周三': '╭( ̄▽ ̄)╯╧═╧',
'周四': '_(:з」∠)_',
'周五': '(๑•̀ㅂ•́) ✧',
'周六': '( ˘ 3˘)♥',
'周日': '(;′༎ຶД༎ຶ`)'
}
class Date(QWidget):
def __init__(self):
super(Date, self).__init__()
self.calendar = QCalendarWidget(self)
self.calendar.setMinimumDate(QDate(1946, 2, 14)) # 2
self.calendar.setMaximumDate(QDate(6666, 6, 6)) # 3
# self.calendar.setDateRange(QDate(1946, 2, 14), QDate(6666, 6, 6))
# self.calendar.setFirstDayOfWeek(Qt.Monday) # 4
# self.calendar.setSelectedDate(QDate(1946, 2, 14)) # 5
self.calendar.setGridVisible(True) # 6
self.calendar.clicked.connect(self.show_emotion_func) # 6
print(self.calendar.minimumDate()) # 7
print(self.calendar.maximumDate())
print(self.calendar.selectedDate())
self.label = QLabel(self) # 8
self.label.setAlignment(Qt.AlignCenter)
weekday = self.calendar.selectedDate().toString('ddd') # 9
self.label.setText(EMOTION[weekday])
self.v_layout = QVBoxLayout()
self.v_layout.addWidget(self.calendar)
self.v_layout.addWidget(self.label)
self.setLayout(self.v_layout)
self.setWindowTitle('QCalendarWidget')
def show_emotion_func(self): # 10
weekday = self.calendar.selectedDate().toString('ddd')
self.label.setText(EMOTION[weekday])
class DateEdit(QWidget):
def __init__(self):
super(DateEdit, self).__init__()
self.datetime_1 = QDateTimeEdit(self) # 1
self.datetime_1.dateChanged.connect(lambda: print('Date Changed!'))
self.datetime_2 = QDateTimeEdit(QDateTime.currentDateTime(), self) # 2
self.datetime_2.setDisplayFormat('yyyy-MM-dd HH:mm:ss')
self.datetime_2.timeChanged.connect(lambda: print('Time Changed!'))
print(self.datetime_2.date())
print(self.datetime_2.time())
print(self.datetime_2.dateTime())
self.datetime_3 = QDateTimeEdit(QDateTime.currentDateTime(), self) # 3
self.datetime_3.dateTimeChanged.connect(lambda: print('DateTime Changed!'))
self.datetime_3.setCalendarPopup(True)
self.datetime_4 = QDateTimeEdit(QDate.currentDate(), self) # 4
self.datetime_5 = QDateTimeEdit(QTime.currentTime(), self)
self.date = QDateEdit(QDate.currentDate(), self) # 5
self.date.setDisplayFormat('yyyy/MM/dd')
print(self.date.date())
self.time = QTimeEdit(QTime.currentTime(), self) # 6
self.time.setDisplayFormat('HH:mm:ss')
print(self.time.time())
self.v_layout = QVBoxLayout()
self.v_layout.addWidget(self.datetime_1)
self.v_layout.addWidget(self.datetime_2)
self.v_layout.addWidget(self.datetime_3)
self.v_layout.addWidget(self.datetime_4)
self.v_layout.addWidget(self.datetime_5)
self.v_layout.addWidget(self.date)
self.v_layout.addWidget(self.time)
self.setLayout(self.v_layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
# Date = Date()
# Date.show()
date_edit = DateEdit()
date_edit.show()
sys.exit(app.exec_())