太难受了终于做完了,感觉用了很久一直卡在界面刷新那里,终于再翻遍文档终于找到了一个timer的方法去处理。那么辛苦当然要记录一下,直接上代码。
time1.py##界面
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'time1.ui' # # Created by: PyQt5 UI code generator 5.15.4 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import QTimer class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(429, 312) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap("dsa.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) Form.setWindowIcon(icon) self.calendarWidget = QtWidgets.QCalendarWidget(Form) self.calendarWidget.setGeometry(QtCore.QRect(10, 70, 411, 236)) self.calendarWidget.setObjectName("calendarWidget") self.line = QtWidgets.QFrame(Form) self.line.setGeometry(QtCore.QRect(360, 140, 118, 3)) self.line.setFrameShape(QtWidgets.QFrame.HLine) self.line.setFrameShadow(QtWidgets.QFrame.Sunken) self.line.setObjectName("line") self.day = QtWidgets.QLCDNumber(Form) self.day.setGeometry(QtCore.QRect(90, 20, 41, 41)) self.day.setObjectName("day") self.label = QtWidgets.QLabel(Form) self.label.setGeometry(QtCore.QRect(10, 10, 81, 61)) font = QtGui.QFont() font.setFamily("新宋体") font.setPointSize(10) self.label.setFont(font) self.label.setTextFormat(QtCore.Qt.AutoText) self.label.setObjectName("label") self.label_2 = QtWidgets.QLabel(Form) self.label_2.setGeometry(QtCore.QRect(140, 10, 31, 61)) font = QtGui.QFont() font.setFamily("新宋体") font.setPointSize(10) self.label_2.setFont(font) self.label_2.setTextFormat(QtCore.Qt.AutoText) self.label_2.setObjectName("label_2") self.hour = QtWidgets.QLCDNumber(Form) self.hour.setGeometry(QtCore.QRect(160, 20, 41, 41)) font = QtGui.QFont() font.setFamily("黑体") self.hour.setFont(font) self.hour.setObjectName("hour") self.label_3 = QtWidgets.QLabel(Form) self.label_3.setGeometry(QtCore.QRect(210, 10, 41, 61)) font = QtGui.QFont() font.setFamily("新宋体") font.setPointSize(10) self.label_3.setFont(font) self.label_3.setTextFormat(QtCore.Qt.AutoText) self.label_3.setObjectName("label_3") self.minute = QtWidgets.QLCDNumber(Form) self.minute.setGeometry(QtCore.QRect(250, 20, 41, 41)) self.minute.setObjectName("minute") self.label_4 = QtWidgets.QLabel(Form) self.label_4.setGeometry(QtCore.QRect(300, 10, 41, 61)) font = QtGui.QFont() font.setFamily("新宋体") font.setPointSize(10) self.label_4.setFont(font) self.label_4.setTextFormat(QtCore.Qt.AutoText) self.label_4.setObjectName("label_4") self.second = QtWidgets.QLCDNumber(Form) self.second.setGeometry(QtCore.QRect(340, 20, 41, 41)) self.second.setObjectName("second") self.label5 = QtWidgets.QLabel(Form) self.label5.setGeometry(QtCore.QRect(390, 10, 41, 61)) font = QtGui.QFont() font.setFamily("新宋体") font.setPointSize(10) self.label5.setFont(font) self.label5.setTextFormat(QtCore.Qt.AutoText) self.label5.setObjectName("label5") self.timer=QTimer() self.timer.timeout.connect(self.main_x) self.timer.start(1000) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "倒计时")) self.label.setText(_translate("Form", "距离考研:")) self.label_2.setText(_translate("Form", "天")) self.label_3.setText(_translate("Form", "小时")) self.label_4.setText(_translate("Form", "分钟")) self.label5.setText(_translate("Form", "秒"))
plan.py##倒计时程序
import time from datetime import datetime class Make_time(): def time_make(self): self.time_now=datetime.now() self.time_future=datetime.strptime('2022-12-24 00:00:00','%Y-%m-%d %H:%M:%S') self.time_xx=self.time_future-self.time_now ## self.time_x_x=datetime.timestamp(self.time_x) def day_a(self): time_day=self.time_xx.days return time_day def hour_a(self): time_hour=int(self.time_xx.seconds/60/60) return time_hour def minute_a(self): time_minute=int((self.time_xx.seconds-self.hour_a()*60*60)/60) return time_minute def second_a(self): time_second=int((self.time_xx.seconds-self.hour_a()*60*60)-self.minute_a()*60) return time_second
time_1.py##总合
import sys import pyperclip import win32api,win32con from PyQt5 import QtWidgets from PyQt5.QtCore import QTimerEvent from PyQt5.QtWidgets import QTableWidgetItem from time1 import Ui_Form from plan import Make_time from PyQt5.QtGui import QStandardItemModel, QStandardItem import os import time class My_From(QtWidgets.QWidget,Ui_Form,Make_time): def __init__(self): super().__init__() self.setupUi(self) self.main_x() def day_x(self): self.day.display(int(self.day_a())) def hour_x(self): self.hour.display(int(self.hour_a())) def minute_x(self): self.minute.display(int(self.minute_a())) def second_x(self): self.second.display(int(self.second_a())) def main_x(self): self.time_make() self.day_x() self.hour_x() self.minute_x() self.second_x() if __name__ == '__main__': app=QtWidgets.QApplication(sys.argv) my_Form=My_From() time_end=int(my_Form.time_xx.seconds) my_Form.show() # while True: # num=0 # time.sleep(1) # my_Form.main_x() # if num==time_end: # break # my_Form.main_x() sys.exit(app.exec_())
其实还是蛮简单的一个小工具就是一个问题,界面刷新太难受了还是不够了解QT5
self.timer=QTimer() self.timer.timeout.connect(self.main_x)##链接界面 self.timer.start(1000)##设置每秒刷新
本文含有隐藏内容,请 开通VIP 后查看