QT實現(xiàn)秒表項目
更新時間:2022年08月04日 12:04:48 作者:吳衡的博客
這篇文章主要為大家詳細介紹了QT實現(xiàn)秒表項目,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了QT實現(xiàn)秒表項目的具體代碼,供大家參考,具體內(nèi)容如下
源代碼目錄

mainwindow.ui窗口設(shè)計

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_Hmainwindow.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("繼續(xù)");
? ? }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();
}以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言如何實現(xiàn)順序表(數(shù)據(jù)結(jié)構(gòu))
這篇文章主要介紹了C語言如何實現(xiàn)順序表(數(shù)據(jù)結(jié)構(gòu))問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
C++實現(xiàn)LeetCode(25.每k個一組翻轉(zhuǎn)鏈表)
這篇文章主要介紹了C++實現(xiàn)LeetCode(25.每k個一組翻轉(zhuǎn)鏈表),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07
C++中實現(xiàn)隊列類鏈式存儲與棧類鏈式存儲的代碼示例
這篇文章主要介紹了C++中實現(xiàn)隊列類鏈式存儲與棧類鏈式存儲的代碼示例,通過注釋來說明,直接上代碼,簡單粗暴XD 需要的朋友可以參考下2016-03-03

