QT实现秒表项目

 更新时间:2022年08月04日 12:04:48   作者:吴衡的博客  
这篇文章主要为大家详细介绍了QT实现秒表项目,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了QT实现秒表项目的具体代码,供大家参考,具体内容如下

源代码目录

mainwindow.ui窗口设计

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QTime>
#include<QTimer>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void updateTimeAndDisplay();


    void on_btn_start_clicked();

    void on_btn_stop_clicked();

    void on_btn_pause_clicked();

    void on_btn_log_clicked();

private:
    Ui::MainWindow *ui;
    QTimer *ptimer;
    QTime baseTime;
    QString showStr;

};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QString>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->ptimer=new QTimer;
    connect(this->ptimer,SIGNAL(timeout()),this,SLOT(updateTimeAndDisplay()));

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::updateTimeAndDisplay(){
    QTime current=QTime::currentTime();
    int t=this->baseTime.msecsTo(current);
    QTime showTime(0,0,0,0);
    showTime=showTime.addMSecs(t);
    showStr=showTime.toString("hh:mm:ss:zzz");
    this->ui->lcdNumber->display(showStr);
}

void MainWindow::on_btn_start_clicked()
{
    this->baseTime=QTime::currentTime();
    this->ptimer->start(1);
    this->ui->btn_start->setEnabled(false);
}

void MainWindow::on_btn_stop_clicked()
{
    if(this->ui->btn_stop->text()=="停止"){
        this->ui->btn_stop->setText("清零");
        this->ptimer->stop();
    }else{
        this->ui->lcdNumber->display("00:00:00:000");
        this->ui->textBrowser->clear();
        this->ui->btn_stop->setText("停止");
        this->ui->btn_start->setEnabled(true);
    }

}

void MainWindow::on_btn_pause_clicked()
{
    static QTime pauseTime;
    if(this->ui->btn_pause->text()=="暂停"){
        pauseTime=QTime::currentTime();
        this->ptimer->stop();
        this->ui->btn_pause->setText("继续");
    }else{
        QTime cut=QTime::currentTime();
        int t=pauseTime.msecsTo(cut);
        this->baseTime=this->baseTime.addMSecs(t);
        this->ptimer->start(1);
        this->ui->btn_pause->setText("暂停");

    }


}

void MainWindow::on_btn_log_clicked()
{
    this->ui->textBrowser->append(this->showStr);
}

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C语言 OpenCV实现柱面投影

    C语言 OpenCV实现柱面投影

    在做全景拼接的时候,为了保持图片中的空间约束与视觉的一致性,需要进行柱面投影,否则离中心图像距离越远的图像拼接后变形越大。本文将具体介绍一下这如何实现,需要的可以参考一下
    2021-12-12
  • C++中const修饰符的详解及其作用介绍

    C++中const修饰符的详解及其作用介绍

    这篇文章主要介绍了C++中const修饰符的详解及其作用介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • c++编写简单的计算器程序

    c++编写简单的计算器程序

    用c++语言实现一个简单的计算器,新手作品,仅仅包括基本的加减乘除运算。希望能够给菜鸟们一些启发
    2016-05-05
  • Matlab实现别踩白块小游戏的示例代码

    Matlab实现别踩白块小游戏的示例代码

    别踩白块是一款音乐类休闲游戏,游戏的玩法不难,只需跟着音乐的节奏点中对的方块即可。本文将用Matlab实现这一经典游戏,感兴趣的可以了解一下
    2022-03-03
  • C语言如何实现顺序表(数据结构)

    C语言如何实现顺序表(数据结构)

    这篇文章主要介绍了C语言如何实现顺序表(数据结构)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • C++算法计时器的实现示例

    C++算法计时器的实现示例

    本文主要介绍了C++算法计时器的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C语言之地址传递和引用传递的问题

    C语言之地址传递和引用传递的问题

    这篇文章主要介绍了C语言之地址传递和引用传递的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • C++实现LeetCode(25.每k个一组翻转链表)

    C++实现LeetCode(25.每k个一组翻转链表)

    这篇文章主要介绍了C++实现LeetCode(25.每k个一组翻转链表),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++中实现队列类链式存储与栈类链式存储的代码示例

    C++中实现队列类链式存储与栈类链式存储的代码示例

    这篇文章主要介绍了C++中实现队列类链式存储与栈类链式存储的代码示例,通过注释来说明,直接上代码,简单粗暴XD 需要的朋友可以参考下
    2016-03-03
  • c++ 虚继承,多继承相关总结

    c++ 虚继承,多继承相关总结

    这篇文章主要介绍了c++虚继承,多继承相关总结,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下
    2021-03-03

最新评论