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