前言
剛剛學習PyQt5無聊想練練手剛好今天是5月20日那就讓我們動手做個暖心程序吧!P炷啤0┕簟!
身為大老爺們怎么可能知道大姨媽啥時候來所以我們需要了解關(guān)于姨媽的知識尝丐!了解了大姨媽的周期那我們就直接開干显拜!
科普
一、姨媽計時器
1.程序界面
2.點擊查看日期
3.生成姨媽記錄
代碼
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
import datetime
import json
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1108, 836)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.calendarWidget = QtWidgets.QCalendarWidget(self.centralwidget)
self.calendarWidget.setGeometry(QtCore.QRect(-10, 0, 1111, 671))
self.calendarWidget.setObjectName("calendarWidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(0, 670, 1111, 121))
font = QtGui.QFont()
font.setFamily("幼圓")
font.setPointSize(35)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1108, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.pushButton.clicked.connect(self.showdata)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def showdata(self):
x = self.calendarWidget.selectedDate()
year = str(x.year())
month = str(x.month())
day = str(x.day())
self.submit(year,month,day)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "姨媽計時器"))
self.pushButton.setText(_translate("MainWindow", "查看日期"))
def submit(self,year,month,day):
time = f"{year}-{month}-{day} 00:00:00"
now = datetime.datetime.strptime(time, "%Y-%m-%d %H:%M:%S")
min = now + datetime.timedelta(days=21)
min = str(min)
min = min.split(" ")[0].split("-")[-2:]
min = "月".join(min)
max = now + datetime.timedelta(days=35)
max = str(max)
max = max.split(" ")[0].split("-")[-2:]
max = "月".join(max)
next = year + "年" + min + "至" + max
data = {f"{year}.{month}.{day}": f"{next}"}
nexttime = json.dumps(data, ensure_ascii=False)
with open("./yima.txt", "r")as fp:
content = fp.readlines()
if nexttime + "\n" not in content:
with open("./yima.txt", "a")as fp1:
fp1.write(nexttime + "\n")
print("成功記錄")
else:
print("已記錄")
QMessageBox.information(MainWindow, "月經(jīng)時間", "{}".format(next), QMessageBox.Ok)
if __name__ == '__main__':
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())