最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt實現(xiàn)簡易計時器的示例代碼

 更新時間:2022年06月16日 15:07:12   作者:wendy_ya  
計時器實現(xiàn)四個功能:開始計時、停止計時、暫停計時以及打點。當點擊暫停時,開始按鈕和停止按鈕無法點擊。當點擊停止時,開始按鈕和暫停按鈕無法點擊,此時停止按鈕變?yōu)榍辶?。本文將用Qt實現(xiàn)這樣的一個計時器,需要的可以參考一下

一、項目介紹

計時器實現(xiàn)四個功能:開始計時、停止計時、暫停計時以及打點。當點擊暫停時,開始按鈕和停止按鈕無法點擊,此時暫停按鈕變?yōu)槔^續(xù)。當點擊停止時,開始按鈕和暫停按鈕無法點擊,此時停止按鈕變?yōu)榍辶恪?/p>

二、項目基本配置

新建一個Mainwindow界面。基本配置與其他Qt項目類似,這里不過多介紹。

三、UI界面設計

UI界面如下:

界面中包含有6個控件,其主要內(nèi)容如下:

名稱類型屬性
LCDNumberQLCDNumberdigitCount:18
開始QPushButtonobjectName:btn_start
停止QPushButtonobjectName:btn_stop
暫停QPushButtonobjectName:btn_pause
打點QPushButtonobjectName:btn_log
textBrowserQTextBrowser/

【注意:將LCDNumber設置為右對齊的常見設置為:將其digitCount屬性設置為18左右】

布局方式:

四個按鈕布局方式為水平布局,整體的布局方式為垂直布局。

四、主程序?qū)崿F(xiàn)

4.1 mainwindow.h頭文件

頭文件中聲明五個槽函數(shù),一個定時器對象,一個基本時間對象以及l(fā)cdNumber的時刻值,核心代碼如下:

private slots:
    void updataTimeAndDisplay();
    void on_btn_start_clicked();
    void on_btn_stop_clicked();
    void on_btn_pause_clicked();
    void on_btn_log_clicked();
private:
    QTimer *ptimer;  //定時器對象
    QTime baseTime;  //時間對象——00:00:00
    QString showStr;  //lcdNumber的時刻值    

4.2 mainwindow.cpp源文件

MainWindow主程序代碼為:

ptimer=new QTimer; //初始化對象
connect(ptimer,SIGNAL(timeout()),this,SLOT(updataTimeAndDisplay()));

定義更新和顯示時間函數(shù):

void MainWindow::updataTimeAndDisplay()
{
    QTime current=QTime::currentTime();//獲取系統(tǒng)當前時間
    int t=this->baseTime.msecsTo(current);  //兩者相減的時間之差
    QTime showtime(0,0,0,0);//初始時間
    showtime=showtime.addMSecs(t);//增加tms
    showStr=showtime.toString("hh:mm:ss:zzz"); //轉(zhuǎn)換為string類型
    ui->lcdNumber->display(showStr);  //顯示
}

定義點擊開始按鈕槽函數(shù):

void MainWindow::on_btn_start_clicked()
{
    baseTime=QTime::currentTime();
    ptimer->start(1);
}

定義點擊停止按鈕槽函數(shù):

void MainWindow::on_btn_stop_clicked()
{
    if(ui->btn_stop->text()=="停止"){
        ptimer->stop();
        ui->btn_stop->setText("清零");
        ui->btn_start->setEnabled(false);//開始按鈕無法點擊
        ui->btn_pause->setEnabled(false);
    }else{
       ui->lcdNumber->display("00:00:00:000") ;//清零
       ui->textBrowser->clear();
       ui->btn_stop->setText("停止");
       ui->btn_start->setEnabled(true);//開始按鈕可以點擊
       ui->btn_pause->setEnabled(true);
    }
}

定義點擊暫停按鈕槽函數(shù):

void MainWindow::on_btn_pause_clicked()
{
    static QTime pauseTime;  //暫停時間【靜態(tài)】
    if(ui->btn_pause->text()=="暫停"){
        pauseTime=QTime::currentTime();//獲取點擊暫停時的當前時間
        ptimer->stop();
        ui->btn_pause->setText("繼續(xù)");
        ui->btn_start->setEnabled(false);//開始按鈕無法點擊
        ui->btn_stop->setEnabled(false);
    }else{
        QTime cut=QTime::currentTime();//繼續(xù)時的時間
        int t=pauseTime.msecsTo(cut);//差值
        baseTime=baseTime.addMSecs(t);  //后延相應的tms繼續(xù)計時
        ptimer->start(1);
        ui->btn_pause->setText("暫停");
        ui->btn_start->setEnabled(true);//開始按鈕可以點擊
        ui->btn_stop->setEnabled(true);
    }
}

定義點擊打點按鈕槽函數(shù):

//打點
void MainWindow::on_btn_log_clicked()
{
    ui->textBrowser->append(showStr);//添加到textBrowser中
}

五、效果演示

以上就是Qt實現(xiàn)簡易計時器的示例代碼的詳細內(nèi)容,更多關于Qt計時器的資料請關注腳本之家其它相關文章!

相關文章

  • C/C++ 左移<<, 右移>>的作用及說明

    C/C++ 左移<<, 右移>>的作用及說明

    這篇文章主要介紹了C/C++ 左移<<, 右移>>的作用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • C語言不使用strcpy函數(shù)如何實現(xiàn)字符串復制功能

    C語言不使用strcpy函數(shù)如何實現(xiàn)字符串復制功能

    這篇文章主要給大家介紹了關于C語言不使用strcpy函數(shù)如何實現(xiàn)字符串復制功能的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • C語言實現(xiàn)簡單貪吃蛇小游戲

    C語言實現(xiàn)簡單貪吃蛇小游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • C語言中scanf的用法舉例

    C語言中scanf的用法舉例

    本節(jié)介紹輸入函數(shù)?scanf?的用法,scanf?和?printf?一樣,非常重要,而且用得非常多,所以一定要掌握,這篇文章主要介紹了C++中scanf的用法舉例,需要的朋友可以參考下
    2022-11-11
  • 詳解C++實現(xiàn)匈牙利算法

    詳解C++實現(xiàn)匈牙利算法

    匈牙利算法是一種在多項式時間內(nèi)求解任務分配問題的組合優(yōu)化算法,并推動了后來的原始對偶方法。美國數(shù)學家哈羅德·庫恩于1955年提出該算法。此算法之所以被稱作匈牙利算法,是因為算法很大一部分是基于以前匈牙利數(shù)學家Dénes K&#337;nig和Jen&#337; Egerváry的工作之上創(chuàng)建起來的
    2021-06-06
  • C語言中互斥鎖與自旋鎖及原子操作使用淺析

    C語言中互斥鎖與自旋鎖及原子操作使用淺析

    今天不整GO語言,我們來分享一下以前寫的C語言代碼,來看看互斥鎖、自旋鎖和原子操作的demo,示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值
    2023-01-01
  • C++Zip壓縮解壓縮示例(支持遞歸壓縮)

    C++Zip壓縮解壓縮示例(支持遞歸壓縮)

    C++Zip壓縮解壓縮示例,用第三方函數(shù)封裝而成,支持 UNCODE, ANSCII、支持壓縮文件夾、支持遞歸壓縮
    2013-11-11
  • C語言中指針常量和常量指針的區(qū)別

    C語言中指針常量和常量指針的區(qū)別

    本文主要介紹了C語言中指針常量和常量指針的區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 深入C語言把文件讀入字符串以及將字符串寫入文件的解決方法

    深入C語言把文件讀入字符串以及將字符串寫入文件的解決方法

    本篇文章是對C語言把文件讀入字符串以及將字符串寫入文件的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實現(xiàn)LeetCode(91.解碼方法)

    C++實現(xiàn)LeetCode(91.解碼方法)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(91.解碼方法),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論

河南省| 金溪县| 新田县| 油尖旺区| 黄陵县| 京山县| 敖汉旗| 孝昌县| 康乐县| 汨罗市| 科技| 德钦县| 渭南市| 江油市| 鞍山市| 马鞍山市| 邢台市| 闵行区| 丰原市| 瓦房店市| 嵊州市| 华容县| 大理市| 嘉善县| 伊通| 吉林省| 晋中市| 内丘县| 丹凤县| 营山县| 绥中县| 轮台县| 萨迦县| 兖州市| 淅川县| 鄂伦春自治旗| 新宁县| 南京市| 濮阳市| 许昌县| 磐石市|