第二十一篇 -- QTimer实现秒表功能
2024-10-10 10:22:58
效果图:
程序一开始就开始计时,当完成了相关功能(在线程中完成)之后,就触发停止信号,停止定时器。
time.py
#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
"""=================================================
@Project -> File : FDS -> play2.py
@IDE : PyCharm
@Author : zihan
@Date : 2020/4/30 10:45
@Desc :
================================================="""
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QThread, pyqtSignal, QTimer
from ui_play import Ui_MainWindow class TimeStop(QThread):
time_stop = pyqtSignal() # 当时间停止的信号 def __init__(self):
super().__init__() def run(self):
# ====================
# 进行一些操作
for i in range(60000000):
if i % 10000000 == 0:
print(i / 10000000 + 1) # ====================
self.time_stop.emit() class QmyMainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类构造函数
self.ui = Ui_MainWindow() # 创建UI对象
self.ui.setupUi(self) # 构造UI self.ui.label.setText("Elapsed Time".ljust(18) + "00:00:00") # 开启定时器
self.curtime = 0
self.timer = QTimer()
self.timer.start(1000) # 计时器每秒计数
# 绑定计时器显示标签
self.timer.timeout.connect(self.do_elapsed_time_set) self.myThread = TimeStop()
self.myThread.time_stop.connect(self.do_time_stop)
self.myThread.start() # 秒表显示
def do_elapsed_time_set(self):
# 显示流逝的时间
self.curtime = self.curtime + 1
hours = self.curtime / 3600
minutes_curtime = self.curtime % 3600
minutes = minutes_curtime / 60
seconds_curtime = minutes_curtime % 60
seconds = seconds_curtime
str_time = "%02d:%02d:%02d" % (hours, minutes, seconds)
self.ui.label.setText("Elapsed Time".ljust(18) + str_time) def do_time_stop(self):
self.timer.stop()
self.ui.label_2.setText("Stoped") if __name__ == '__main__':
app = QApplication(sys.argv) # 创建app
form = QmyMainWindow()
form.show()
sys.exit(app.exec_())
OK.
最新文章
- Discuz! X论坛上传附件到100%自动取消上传的原因及解决方案
- 深度理解依赖注入(Dependence Injection)
- ArcGIS Add-in开发(一)--获取选定要素的属性值
- Codevs 1689 建造高塔
- smarty模板引擎原理解析
- codility上的问题 (23)Chi 2012
- EffectiveC#9--明白几个相等运算之间的关系
- oracle_根据表名拼装语句
- js-call、apply
- [leetcode-566-Reshape the Matrix]
- Excel 、数据库 一言不合就转换
- 【转贴】一次 JDBC 与 MySQL 因 “CST” 时区协商误解导致时间差了 14 或 13 小时的排错经历
- Lumen与laravel的区别
- VUE 处理文本框获焦点高亮
- C# 中那些常用的工具类(Utility Class)(二)
- [20180124]奇怪的SQL*Net message from dblink.txt
- CentOS7安装配置Bacular
- CCF 201509-3 模版生成系统
- PMS
- tx1 高温不启动问题解决办法
热门文章
- 终于放弃了单调的swagger-ui了,选择了这款神器—knife4j
- Java @FunctionalInterface注解-6
- 深入理解Spring事务的那点事
- 题解 P6622 [省选联考 2020 A/B 卷] 信号传递
- NOIP模拟测试24「star way to hevaen·lost my music」
- NOIP模拟测试6「那一天我们许下约定(背包dp)·那一天她离我而去」
- sql把一个字段中的特定字符替换成其他字符
- Docker(39)- docker 实战二之安装 Tomcat
- 滑动窗口经典题 leetcode 3. 无重复字符的最长子串
- Kubernetes之deployment