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

mainwindow.ui窗口設計

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

