基于Python实现新年倒计时
作者:Sir 发布时间:2022-02-14 08:41:59
标签:Python,倒计时
不知不觉已经在家两个月了,眼看马上春节就要来临了。满怀期待的写了一个新年倒计时的小工具!
设置新年时间后都能够使用,打开软件后可以自动计算到新年的倒计时情况。
UI界面及布局这块一直使用的是PyQt5来实现的,若是没有安装使用pip的方式安装一下即可。
pip install PyQt5
紧接着将PyQt5以及相关的模块都导入到我们的代码块中准备开发。
# Importing all the classes from the QtWidgets module.
from PyQt5.QtWidgets import *
# Importing all the classes from the QtGui module.
from PyQt5.QtGui import *
# Importing the sys module.
import sys
# It imports all the classes from the QtCore module.
from PyQt5.QtCore import *
# Importing the datetime module.
import datetime
# Importing the math module.
import math
业务逻辑不是很复杂,我们这次不通过子线程来实现业务逻辑,直接在主线程中开发界面布局和组件以及实现倒计时的过程。
class CountDown(QWidget):
def __init__(self):
"""
A constructor. It is called when an object is created from a class and it allows the class to initialize the
attributes of a class.
"""
super(CountDown, self).__init__()
self.spring_date = datetime.datetime(2023, 1, 21, 0, 0, 0)
self.init_code()
def init_code(self):
"""
业务初始化代码块
"""
self.setWindowTitle('新年倒计时 公众号:Python 集中营')
self.setWindowIcon(QIcon('倒计时.png'))
self.resize(600, 400)
palette = QPalette()
palette.setBrush(QPalette.Background, QBrush(QPixmap("./背景.jpeg")))
self.setPalette(palette)
self.timer = QTimer()
self.timer.setInterval(1000)
self.timer.timeout.connect(self.refresh_count_down)
self.timer.start()
self.time_label = QLabel()
self.time_label.setAlignment(Qt.AlignCenter)
self.time_label.setStyleSheet('color:red;font:bold 28px;font-family:黑体')
vbox = QVBoxLayout()
vbox.addWidget(self.time_label)
self.setLayout(vbox)
def refresh_count_down(self):
"""
刷新页面倒计时时间
"""
current_date = datetime.datetime.now()
differ_day = (self.spring_date - current_date).days
seconds = (self.spring_date - current_date).seconds
differ_second = seconds % 60
differ_minute = seconds / 60 % 60
differ_hour = seconds / 60 / 60
if differ_hour > 24:
differ_hour = differ_hour - 24
differ_hour = math.floor(differ_hour)
differ_minute = math.floor(differ_minute)
self.time_label.setText(
"距离春节:" + str(differ_day) + "天" + str(differ_hour) + "小时" + str(differ_minute) + "分钟" + str(
differ_second) + "秒" + '\r')
使用python模块主函数直接启动春节倒计时桌面应用,就大功告成啦!
# A special variable in Python that evaluates to `True` if the module is being run as the main program.
if __name__ == '__main__':
app = QApplication(sys.argv)
main = CountDown()
main.show()
sys.exit(app.exec_())
来源:https://mp.weixin.qq.com/s/rYAdeqsv6Dae--hx_aoRqA
0
投稿
猜你喜欢
- 在了解了XHTML 2的进展之后,我们再来看看X/HTML 5 的进展。X/HTML 5酷在什么地方章节元素的构想X/HTML 5引入新的元
- <script language="javascript">function chang
- 最近网上流行着一些采集程序,更多人拿着这些东西在网上叫卖,很多不太懂的人看着那些程序眼羡,其实如果你懂一些ASP,了解自动采集程序的原理后,
- 前言最近又在重新学习编译原理了,其实两年前也复习过,当初是为了能实现通过 MySQL 的 DDL 生
- 后边要做一个微信小程序,并要能获取用户微信绑定的手机号码。而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返
- 往往我们在建立一个较为大型的网站的时候会有很多的副页面框架模式甚至一些小的细节元素都是相同的,但是令人困扰的是在更新它们时却要费些周折,要一
- 前言最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析。现在我准备尝试着结合Python来模拟
- 前几天在“CSS那些事儿”的群中,一位读者朋友(小土豆)问我书中提到首字下沉的时候为什么要增加一个清除浮动。当时我自己一时迷惑了,为什么呢,
- BIT[(M)]位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。TINYINT[(M)] [UNSIGNED]
- 本文实例讲述了php实现比较全的数据库操作类。分享给大家供大家参考。具体如下:<?php class database {  
- javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它是一个十分容易让人模糊的东西,在一般情况下
- 问题:导入数据时是否需要禁用索引?解答:在使用load data导入数据时,如果导入的表是MyISAM的,对于空表,MySQL数据库会把所有
- 如果只是因为浏览者改变了浏览器的设置,或者因为浏览器不兼容,使自己精心制作的网页变得“面目全非”,那多令人沮丧!下面我们以网页爱好者的常用工
- 前言这是一篇罗里吧嗦的前言,可能更多的属于个人的感慨以及吐槽。首先打个广告:你每天点点点累么?面对越来越卷的环境你彷徨么?被要求 2 天做一
- 一、图像噪声图像噪声是图像在获取或者传输过程中受到随机信号干扰,妨碍人们对图像理解及分析处理的信号。很多时候将图像看作随机过程,因而描述噪声
- 具体代码和实现方法见下:第一个办法,这个程序可以进行万亿以下的货币金额转换(够用的了吧),其中汉字与数字均按一位计:Function&nbs
- 对于Python开发用户来讲,安装第三方库是家常便饭,下面提供两种安装方式pycharm软件安装1.打开file>setting2.点
- 例一:#!/usr/bin/pythonimport sysimport reif __name__=
- 下面就是简单的例子,这里提供2中方法:test.htm &
- 首先要把php_iconv.dll和inconv.dll COPY到c:\winnt\system32下,直接上代码:<?define