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)文章
Qt一個(gè)進(jìn)程運(yùn)行另一個(gè)進(jìn)程的實(shí)現(xiàn)方法
本文主要介紹了Qt一個(gè)進(jìn)程運(yùn)行另一個(gè)進(jìn)程的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
C++11中初始化列表initializer lists的使用方法
C++11引入了初始化列表來初始化變量和對(duì)象,自定義類型,如果想用初始化列表就要包含initializer_list頭文件2021-09-09
C++類的靜態(tài)成員變量與靜態(tài)成員函數(shù)詳解
下面小編就為大家?guī)硪黄狢++類的靜態(tài)成員變量與靜態(tài)成員函數(shù)的文章。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2021-11-11
C++ 手把手教你實(shí)現(xiàn)可變長(zhǎng)的數(shù)組實(shí)現(xiàn)
這篇文章主要介紹了C++ 手把手教你實(shí)現(xiàn)可變長(zhǎng)的數(shù)組實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
C語言字符串函數(shù),字符函數(shù),內(nèi)存函數(shù)使用及模擬實(shí)現(xiàn)
這篇文章主要介紹了C語言字符串函數(shù),字符函數(shù),內(nèi)存函數(shù)使用及模擬實(shí)現(xiàn),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09

