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装饰器验证配置文件示例
Feb 24 Python
Django中几种重定向方法
Apr 28 Python
python读取excel表格生成erlang数据
Aug 26 Python
python中virtualenvwrapper安装与使用
May 20 Python
对pandas写入读取h5文件的方法详解
Dec 28 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
如何使用PyCharm引入需要使用的包的方法
Sep 22 Python
Python破解极验滑动验证码详细步骤
May 21 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设置允许大文件上传示例代码
2014/03/10 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Python简单读取json文件功能示例
2017/11/30 Python
Python装饰器用法实例总结
2018/05/26 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
Python自带的IDE在哪里
2020/07/01 Python
python如何运行js语句
2020/09/09 Python
python xlsxwriter模块的使用
2020/12/24 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
学校司机岗位职责
2013/11/14 职场文书
应届毕业生求职自荐书
2014/01/03 职场文书
关于毕业的广播稿
2014/01/10 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书