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 相关文章推荐
windows下安装python paramiko模块的代码
Feb 10 Python
python动态加载变量示例分享
Feb 17 Python
python使用urllib2实现发送带cookie的请求
Apr 28 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
python opencv实现运动检测
Jul 10 Python
老生常谈python中的重载
Nov 11 Python
python实现连连看辅助之图像识别延伸
Jul 17 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
Python多线程thread及模块使用实例
Apr 28 Python
Python3合并两个有序数组代码实例
Aug 11 Python
Python join()函数原理及使用方法
Nov 14 Python
Python3 使用pip安装git并获取Yahoo金融数据的操作
Apr 08 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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
Python中pygame安装方法图文详解
2015/11/11 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
中学教师管理制度
2014/01/14 职场文书
募捐倡议书
2014/04/14 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
尼克胡哲观后感
2015/06/08 职场文书
活动新闻稿范文
2015/07/17 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android