PyQt5实现暗黑风格的计时器


Posted in Python onJuly 29, 2019

本文实例为大家分享了PyQt5实现暗黑风格的计时器的具体代码,供大家参考,具体内容如下

主要是学习多线程知识,使用的是QTime(),但是似乎用QThread()更多一些

QThread()与QTimer()的优势不再赘述

但是记下来总没错

QSS渲染使用的是qdarkstyle,因为我一直觉得这个暗黑风很帅

qdarkstyle在GitHub上一千多颗星,还是很受欢迎的

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5 import QtCore
import qdarkstyle
 
global sec
sec = 0
 
 
class WorkThread(QThread):
 trigger = pyqtSignal()
 
 def __int__(self):
  super(WorkThread, self).__init__()
 
 def run(self):
  for i in range(2000000000):
   pass
 
  # 循环完毕后发出信号
  self.trigger.emit()
 
def countTime():
 global sec
 sec += 1
 # LED显示数字+1
 lcdNumber.display(sec)
 
 
def work():
 # 计时器计时
 print("#30")
 timer.start(1000) # 将start写成statr居然不报错,但是找bug却找了半天
 # 计时开始
 workThread.start()
 # 当获得循环完毕的信号时,停止计时
 workThread.trigger.connect(timeStop)
 
 
def timeStop():
 print("#38")
 timer.stop()
 print("计时结束,共计用时:", lcdNumber.value())
 global sec
 sec = 0
 
 
if __name__ == "__main__":
 app = QApplication(sys.argv)
 top = QWidget()
 top.resize(300, 200)
 # 影藏边框
 top.setWindowFlags(QtCore.Qt.FramelessWindowHint)
 layout = QVBoxLayout(top)
 lcdNumber = QLCDNumber()
 layout.addWidget(lcdNumber)
 button = QPushButton("开始")
 layout.addWidget(button)
 
 timer = QTimer()
 workThread = WorkThread()
 button.clicked.connect(work)
 # 计时结束,触发countime
 timer.timeout.connect(countTime)
 # 进行渲染
 app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
 top.show()
 sys.exit(app.exec_())

运行之后如图

PyQt5实现暗黑风格的计时器

影藏了边框

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
Python基类函数的重载与调用实例分析
Jan 12 Python
python脚本设置系统时间的两种方法
Feb 21 Python
django中模板的html自动转意方法
May 27 Python
django中使用POST方法获取POST数据
Aug 20 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
Python新手学习raise用法
Jun 03 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
如何用python绘制雷达图
Apr 24 Python
详细介绍python操作RabbitMq
Apr 12 Python
Python Django 实现简单注册功能过程详解
Jul 29 #Python
Django models.py应用实现过程详解
Jul 29 #Python
pycharm中显示CSS提示的知识点总结
Jul 29 #Python
pandas 如何分割字符的实现方法
Jul 29 #Python
python自定义时钟类、定时任务类
Feb 22 #Python
python Pandas如何对数据集随机抽样
Jul 29 #Python
python Django 创建应用过程图示详解
Jul 29 #Python
You might like
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
JavaScript 参考教程
2006/12/29 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
js中有关IE版本检测
2012/01/04 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
python切换hosts文件代码示例
2013/12/31 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
python并发2之使用asyncio处理并发
2017/12/21 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
物业工作计划书
2014/01/10 职场文书
优秀团支部事迹材料
2014/02/08 职场文书
商场消防安全责任书
2014/07/29 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
同学聚会开幕词
2019/04/02 职场文书