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 相关文章推荐
Python实现的多线程端口扫描工具分享
Jan 21 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
零基础小白多久能学会python
Jun 22 Python
关于Python字符编码与二进制不得不说的一些事
Oct 04 Python
python+opencv实现车道线检测
Feb 19 Python
python 多线程爬取壁纸网站的示例
Feb 20 Python
浅析python连接数据库的重要事项
Feb 22 Python
Python 读写 Matlab Mat 格式数据的操作
May 19 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 Python
使用Python拟合函数曲线
Apr 14 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
戴尔英国官网:Dell英国
2017/05/27 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
个人对照检查材料
2014/02/12 职场文书
Python正则表达式中flags参数的实例详解
2022/04/01 Python