python lcd 时间显示
#!/usr/bin/python
# QStopWatch -- a very simple stop watch
# Copyright (C) 2006 Dominic Battre <dominic {at} battre {dot} de>
# Copyright (C) 2013 ActivityWorkshop.net
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Versions:
# 2006-11-18 version 1.0 - simple but fully functional stop watch
# 2006-11-18 version 1.0.1 - fixed problem with QString vs. Python string
# Obtained from http://kde-apps.org/content/show.php/QStopWatch?content=48810
# 2013-06-19 version 1.1 - ported to python 2.7, qt4; used QLCDNumber for time display
import sys
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
DEFAULT_WINDOW_TITLE = "Stopwatch"
def __init__(self, *args):
apply(QtGui.QMainWindow.__init__, (self,) + args)
self.mainWidget = QtGui.QWidget(self);
self.setCentralWidget(self.mainWidget);
self.mainLayout = QtGui.QVBoxLayout(self.mainWidget)
self.buttonsWidget = QtGui.QWidget(self.mainWidget);
self.buttonsLayout = QtGui.QHBoxLayout(self.buttonsWidget)
self.txTime = QtGui.QLCDNumber(self.mainWidget);
self.txTime.setSegmentStyle(QtGui.QLCDNumber.Flat);
self.bnStart = QtGui.QPushButton("&Start", self.buttonsWidget);
self.bnClear = QtGui.QPushButton("&Clear", self.buttonsWidget);
self.connect(self.bnStart, QtCore.SIGNAL("clicked()"), self.slotBnStartClicked)
self.connect(self.bnClear, QtCore.SIGNAL("clicked()"), self.slotBnClearClicked)
self.buttonsLayout.addWidget(self.bnStart);
self.buttonsLayout.addWidget(self.bnClear);
self.mainLayout.addWidget(self.txTime);
self.mainLayout.addWidget(self.buttonsWidget);
self.counting = False;
self.msInLastLaps = 0;
self.timer = QtCore.QTimer(self);
self.connect(self.timer, QtCore.SIGNAL("timeout()"), self.slotTimerEvent);
self.displayTime(0, False)
self.setWindowTitle(self.DEFAULT_WINDOW_TITLE)
# reduce to minimum size
self.resize(self.minimumSizeHint())
def displayTime(self, msecs, exact):
ms = msecs % 1000
msecs /= 1000
sec = msecs % 60
msecs /= 60
min = msecs % 60
msecs /= 60
hours = msecs
if exact:
timestring = '%02d:%02d:%02d.%03d' % (hours, min, sec, ms)
self.txTime.setNumDigits(12 if hours > 0 else 9)
self.txTime.display(timestring)
self.setWindowTitle(self.DEFAULT_WINDOW_TITLE)
else:
timestring = '%02d:%02d:%02d' % (hours, min, sec)
self.txTime.setNumDigits(8 if hours > 0 else 5)
self.txTime.display(timestring)
self.setWindowTitle(timestring)
def slotBnStartClicked(self):
if ( self.counting ) :
print "stop ", str(QtCore.QTime.currentTime().toString())
self.timer.stop();
self.msInLastLaps += self.startTime.msecsTo(QtCore.QTime.currentTime());
self.displayTime(self.msInLastLaps, True)
self.bnStart.setText("&Start")
else:
self.startTime = QtCore.QTime.currentTime()
print "start ", str(self.startTime.toString())
self.timer.start(500)
self.bnStart.setText("&Stop")
self.slotTimerEvent()
self.counting = not self.counting
def slotBnClearClicked(self):
print "clear";
self.msInLastLaps = 0;
self.startTime = QtCore.QTime.currentTime()
self.displayTime(0, not self.counting)
def slotTimerEvent(self):
self.displayTime(self.msInLastLaps + self.startTime.msecsTo(QtCore.QTime.currentTime()), False)
# Main method as the program entry point
def main(args):
app = QtGui.QApplication(args)
win = MainWindow()
win.show()
app.connect(app, QtCore.SIGNAL("lastWindowClosed()"), app, QtCore.SLOT("quit()"))
app.exec_()
if __name__=="__main__":
main(sys.argv)

python lcd 时间显示的更多相关文章
- python中时间格式
问题:通过MySQLdb查询datetime字段,然后通过浏览器显示出来,得到的格式是: 'Thu, 19 Feb 2009 16:00:07 GMT' (http呈现出来的格式) ...
- python datetime 时间日期处理小结
python datetime 时间日期处理小结 转载请注明出处:http://hi.baidu.com/leejun_2005/blog/item/47f340f1a85b5cb3a50f5232. ...
- python 的时间与日期
显示当前日期: import time print time.strftime('%Y-%m-%d %A %X %Z',time.localtime(time.time())) 或者 你也可以用: p ...
- python(时间模块,序列化模块等)
一.time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mon ...
- Python之时间表示
Python的time模块中提供了丰富的关于时间操作方法,可以利用这些方法来完成这个需求. time.time() :获取当前时间戳 time.ctime(): 当前时间的字符串形式 time.loc ...
- 1、Python 日期时间格式化输出
今天帮朋友写自动化脚本,又需要用格式化日期,又忘记怎么写了,还是写到自己博客里面,方便日后需要的时候看一眼吧.So,临时加一篇 Python 的文章. 1.Python的time模块 import t ...
- 【STM32H7教程】第51章 STM32H7的LTDC应用之LCD汉字显示和2D图形显示
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第51章 STM32H7的LTDC应用之LCD汉字 ...
- 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060上LCD横向渐变色显示出亮点问题的分析解决经验. 痞子衡前段时间在支持一个i.MXRT1060客户项目时遇到了LCD ...
- js获取当前时间显示在页面上
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
随机推荐
- HtmlParser 2.0 中文乱码问题
对于HTMLParser 2.0 工具包我们需要修改其中的Page.java文件使其适用中文的html文件分析. 主要是把protected static final String DEFAULT_C ...
- HBase学习(十四)LINUX下用Eclipse构建HBase开发环境
Eclipse,HBase版本号眼下没有发现须要特别指定 1:从HBase集群中复制一份Hbase部署文件,放置在开发端某一文件夹下(如在/app/hadoop/hbase096文件夹下). 2:在e ...
- position:fixed定位时 “高度坍塌” 问题的解决
问题:对于固定定位的元素,固定住高度,后面紧跟的模块会当做前面的固定元素不存在似的,这给布局带来了困扰 解决方法: 1.给第二个模块div设置margin-top的值,margin-top的值设为大于 ...
- HTML与CSS入门——第六章 使用字体
知识点: 1.粗体.斜体和特殊文本格式的使用 2.字体的调整方法 3.特殊字符的使用方法 6.1 粗体.斜体和特殊文本格式: font-weight控制粗细 加粗<strong> font ...
- sqlserver中的序列
序列是由用户定义的绑定到架构的对象.序列依据定义的间隔按升序或降序生成,并可配置为用尽时重新启动(循环).序列不与特定表关联.序列与表之间的关系由应用程序进行控制. 创建序列的语法: CREATE S ...
- c - 逆序/正序输出每位.
#include <stdio.h> #include <math.h> /* 判断一个正整数的位数,并按正序,逆序输出他们的位. */ int invert(int); vo ...
- hdu2937
题目大意: 给出n求sn,中括号代表向下取整. 为了方便表述,我们令a = (3k+6)!,b = (3k+7),令c = (a+1)/b也就是式子中的前半部分,d = a/b也就是式子中的后半部分. ...
- C++中多重继承构造函数执行顺序
代码1: #include <cstdio> #include <iostream> using namespace std; class A{ public: A(){ co ...
- runtime error ?
程序运行时错误(运行时出错就是出现在程序运行过程中的),有很多种: 比如:溢出.内存泄露.死循.乱用指针.数组越界(数组开小了?).除以0错误.递归太深层(系统暴栈了)
- Java语言实现简单FTP软件------>FTP软件效果图预览之上传功能(三)
下面展示一下上传功能的过程 1.上传前 上传前选择好要将文件或文件夹上传到远程FTP服务器的哪个目的目录下. 2.上传中 添加上传任务 上传任务完成进度显示 3.上传完成 ============== ...