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脚本实现下载合并SAE日志
Feb 10 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
使用python获取csv文本的某行或某列数据的实例
Apr 03 Python
对Python3中的input函数详解
Apr 22 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
python生成随机红包的实例写法
Sep 02 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
Oct 12 Python
Python使用Matlab命令过程解析
Jun 04 Python
使用django自带的user做外键的方法
Nov 30 Python
如何利用python生成MD5并去重
Dec 07 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/02/25 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
python读取文件名并改名字的实例
2019/01/07 Python
Python 串口读写的实现方法
2019/06/12 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
python超时重新请求解决方案
2019/10/21 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
中英双版中文教师求职信
2013/10/27 职场文书
师范生自我鉴定
2014/03/20 职场文书
公证书格式
2015/01/23 职场文书
学校教学工作总结2015
2015/05/19 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
使用MybatisPlus打印sql语句
2022/04/22 SQL Server