QT實(shí)現(xiàn)秒表項(xiàng)目
本文實(shí)例為大家分享了QT實(shí)現(xiàn)秒表項(xiàng)目的具體代碼,供大家參考,具體內(nèi)容如下
源代碼目錄

mainwindow.ui窗口設(shè)計(jì)

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();
}以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言 OpenCV實(shí)現(xiàn)柱面投影
在做全景拼接的時(shí)候,為了保持圖片中的空間約束與視覺(jué)的一致性,需要進(jìn)行柱面投影,否則離中心圖像距離越遠(yuǎn)的圖像拼接后變形越大。本文將具體介紹一下這如何實(shí)現(xiàn),需要的可以參考一下2021-12-12
Matlab實(shí)現(xiàn)別踩白塊小游戲的示例代碼
別踩白塊是一款音樂(lè)類(lèi)休閑游戲,游戲的玩法不難,只需跟著音樂(lè)的節(jié)奏點(diǎn)中對(duì)的方塊即可。本文將用Matlab實(shí)現(xiàn)這一經(jīng)典游戲,感興趣的可以了解一下2022-03-03
C語(yǔ)言如何實(shí)現(xiàn)順序表(數(shù)據(jù)結(jié)構(gòu))
這篇文章主要介紹了C語(yǔ)言如何實(shí)現(xiàn)順序表(數(shù)據(jù)結(jié)構(gòu))問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
C++算法計(jì)時(shí)器的實(shí)現(xiàn)示例
本文主要介紹了C++算法計(jì)時(shí)器的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
C++實(shí)現(xiàn)LeetCode(25.每k個(gè)一組翻轉(zhuǎn)鏈表)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(25.每k個(gè)一組翻轉(zhuǎn)鏈表),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C++中實(shí)現(xiàn)隊(duì)列類(lèi)鏈?zhǔn)酱鎯?chǔ)與棧類(lèi)鏈?zhǔn)酱鎯?chǔ)的代碼示例
這篇文章主要介紹了C++中實(shí)現(xiàn)隊(duì)列類(lèi)鏈?zhǔn)酱鎯?chǔ)與棧類(lèi)鏈?zhǔn)酱鎯?chǔ)的代碼示例,通過(guò)注釋來(lái)說(shuō)明,直接上代碼,簡(jiǎn)單粗暴XD 需要的朋友可以參考下2016-03-03

