#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->init();
}
MainWindow::~MainWindow()
{
delete this->pTimer;
delete ui;
}
//初始化
void MainWindow::init()
{
//默认显示
this->ui->lcd_play->display("00:00:00:000");
this->pTimer = new QTimer;
//绑定定时器的信号
connect(this->pTimer,SIGNAL(timeout()),this,SLOT(updateDisplay()));
}
//开始
void MainWindow::on_btn_start_clicked()
{
//获取当前时间
this->baseTime = this->baseTime.currentTime();
this->pTimer->start(1);
//重置状态
if(this->ui->btn_stop->text() != "停止")
{
this->ui->btn_stop->setText("停止");
}
if(this->ui->btn_pause->text() != "暂停")
{
this->ui->btn_pause->setText("暂停");
}
}
//结束
void MainWindow::on_btn_stop_clicked()
{
if(this->ui->btn_stop->text() == "停止")
{
this->ui->btn_stop->setText("清空");
this->pTimer->stop();
}
else if(this->ui->btn_stop->text() == "清空")
{
this->ui->btn_stop->setText("停止");
this->ui->tb_display->clear();
this->ui->lcd_play->display("00:00:00:000");
}
}
//暂停
void MainWindow::on_btn_pause_clicked()
{
static QTime pauseTime;
if(this->ui->btn_pause->text() == "暂停")
{
pauseTime = QTime::currentTime();
this->ui->btn_pause->setText("继续");
this->pTimer->stop();
}
else if(this->ui->btn_pause->text() == "继续")
{
//进行差值计算
QTime cut = QTime::currentTime();
int t = pauseTime.msecsTo(cut);
this->baseTime = this->baseTime.addMSecs(t);
this->ui->btn_pause->setText("暂停");
this->pTimer->start();
}
}
//打点
void MainWindow::on_btn_point_clicked()
{
//将timeStr添加到列表
this->ui->tb_display->append(this->timeStr);
}
//更新时间
void MainWindow::updateDisplay()
{
/*
* 1.点击开始后获取到当前的时间并且赋值给baseTime
* 2.启动定时器,间隔1s
* 3.槽函数中再次获取当前的时间currTime
* 4.计算两个时间的差值t
* 5.声明一个showTime对象给他加上t的差值
* 6.格式化后设置显示
*/
QTime currTime = QTime::currentTime();
int t = this->baseTime.msecsTo(currTime);
QTime showTime(0,0,0,0);
showTime = showTime.addMSecs(t);
this->timeStr = showTime.toString("hh:mm:ss:zzz");
this->ui->lcd_play->display(timeStr);
}
QT项目-秒表
5星 · 超过95%的资源 需积分: 50 37 浏览量
2018-04-16
14:56:17
上传
评论 8
收藏 6KB ZIP 举报
刘某人程序员
- 粉丝: 4851
- 资源: 124
最新资源
- Unity导入Excel文件自动创建class文件和ScriptObject文件,并转化成ScriptObject的插件pro版
- UE4仅k位移产生完美行走动作-UE4项目
- 基于 Python 的校园导航系统
- tensorflow-2.6.3-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.6.2-cp39-cp39-win-amd64.whl
- tensorflow-2.6.2-cp39-cp39-manylinux2010-x86-64.whl
- 基于Python卷积神经网络人脸识别驾驶员疲劳检测与预警系统源码+使用说明+全部资料.zip
- BPNN-预测.rar
- 灾难分类数据集 PNG(12类 4.8K+ 张图像)
- java8和17的windows、linux版本
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈