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基础教程之常用运算符
Aug 29 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
12步教你理解Python装饰器
Feb 25 Python
Python实现识别手写数字大纲
Jan 29 Python
python3+PyQt5泛型委托详解
Apr 24 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
python实现键盘输入的实操方法
Jul 16 Python
使用python3 实现插入数据到mysql
Mar 02 Python
python 绘制场景热力图的示例
Sep 23 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
pytorch 实现变分自动编码器的操作
May 24 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面试题附答案
2009/01/07 PHP
php开发环境配置记录
2011/01/14 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
php 常用的系统函数
2017/02/07 PHP
为数据添加append,remove功能
2006/10/03 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
Python实现分割文件及合并文件的方法
2015/07/10 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
Python csv文件记录流程代码解析
2020/07/16 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
校园摄影活动策划方案
2014/02/05 职场文书
房产委托公证书样本
2014/04/04 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
单位工作证明范文
2014/09/14 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis