QT实现秒表项目

2022-08-04 13:42:39

本文实例为大家分享了QT实现秒表项目的具体代码,供大家参考,具体内容如下源代码目录mainwindow.ui窗口设计mainwindow.h#ifndefMAINWINDOW_H#defineMA...

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

源代码目录

QT实现秒表项目

mainwindow.ui窗口设计

QT实现秒表项目

mainwindphpow.hphp

#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);
js}

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();
}

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