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中requirements.txt的一切
Mar 03 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
Nov 22 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
Python中return self的用法详解
Jul 27 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
python主要用于哪些方向
Jul 05 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
Sep 28 Python
Django使用channels + websocket打造在线聊天室
May 20 Python
Python 全局空间和局部空间
Apr 06 Python
Python保存并浏览用户的历史记录
Apr 29 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计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
JavaScript 创建对象
2009/07/17 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
python实现rest请求api示例
2014/04/22 Python
python代码制作configure文件示例
2014/07/28 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
分分钟入门python语言
2018/03/20 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
商场消防管理制度
2014/01/12 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
创业计划书详解
2019/07/19 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
Python 文本滚动播放器的实现代码
2021/04/25 Python