python设计透明电子时钟,包含显示当前时间、计算时间差!

效果:

摘要

在使用Python写程序时,经常需要输出系统的当前时间以及计算两个时间之间的差值,或者将当前时间加减一定时间(天数、小时、分钟、秒)来得到新的时间,这篇文章就对一些常见的时间相关的问题系统的进行总结。

如果你感觉学不会?莫慌,小编推荐大家加入群,

前面548中间377后面875,群里有志同道合的小伙伴,

互帮互助,还可以拿到许多视频教程!

这里主要使用Python的datetime包实现上述功能。

1.输出当前系统时间

输出结果从总到右分别为Year、Month、Day、Hour、Minute、Second,最后一个MicroSeconds就不用管了。

2.标准化输出方法strftime()

其中:

%Y : 表示年

%m(小写):表示月

%d(小写):表示日

%H:表示小时

%M:表示分钟

%S:表示秒

3.也可以只输出年、月

4.计算两个日期间的间隔

5.计算当前时间加减一定时间(天数、小时、分钟、秒)

上述分别表示减去40天43分钟和加上4小时120秒。

Python窗口pyqt5源代码:

from PyQt5.QtWidgets import QLCDNumber

from PyQt5.Qt import QPoint, QPalette, QTimer, QTime, QRect

from PyQt5.QtCore import Qt

class DigitalClock(QLCDNumber):

def __init__(self, Parent=None):

'''

Constructor

'''

super().__init__(Parent)

self.__InitData() #初始化类的数据

self.__InitView() #初始化界面

def __InitData(self):

#初始化数据

self.__ShowColon = True #是否显示时间如[12:07]中的冒号,用于冒号的闪烁

self.__dragPosition = QPoint(0,0) #用于保存鼠标相对于电子时钟左上角的偏移值

self.__timer = QTimer(self) #新建一个定时器

#关联timeout信号和showTime函数,每当定时器过了指定时间间隔,就会调用showTime函数

self.__timer.timeout.connect(self.showTime)

self.__timer.start(1000) #设置定时间隔为1000ms即1s,并启动定时器

def __InitView(self):

#初始化界面

palette = QPalette() #新建调色板

palette.setColor(QPalette.Window, Qt.blue) #将调色板中的窗体背景色设置为蓝色

self.setPalette(palette) #在本窗体载入此调色板

self.setWindowFlags(Qt.FramelessWindowHint) #设置窗体为无边框模式

self.setWindowOpacity(0.5) #设置窗体的透明度为0.5

self.resize(200,60) #设置界面尺寸,宽150px,高60px

self.setNumDigits(8) #允许显示8个字符 原因,自己数右边几个字符 【HH:MM:SS】

self.showTime() #初始化时间的显示

def showTime(self):

#更新时间的显示

time = QTime.currentTime() #获取当前时间

time_text = time.toString(Qt.DefaultLocaleLongDate) #获取HH:MM:SS格式的时间

#冒号闪烁

if self.__ShowColon == True:

self.__ShowColon = False

else:

time_text = time_text.replace(':',' ')

self.__ShowColon = True

self.display(time_text) #显示时间

def mousePressEvent(self, mouseEvent):

#鼠标按下事件

btn_code = mouseEvent.button()

if btn_code == Qt.LeftButton:

#如果是鼠标左键按下

self.__dragPosition = mouseEvent.globalPos() - self.frameGeometry().topLeft()

print(self.__dragPosition)

mouseEvent.accept()

elif btn_code == Qt.RightButton:

print("It will close")

self.close() #鼠标右键关闭时钟

def mouseMoveEvent(self, mouseEvent):

#鼠标移动事件

#在鼠标拖动下,移动电子时钟

self.move(mouseEvent.globalPos()-self.__dragPosition)

mouseEvent.accept()

main.py

from PyQt5.QtWidgets import QApplication

import sys

from DigitalClock import DigitalClock

def main():

app = QApplication(sys.argv)

clock = DigitalClock(None)

clock.show()

sys.exit(app.exec_())

if __name__ == '__main__':

main()

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181012A1T3JN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券