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

用QT實現(xiàn)計時器功能

 更新時間:2022年08月04日 14:56:11   作者:微小冷  
這篇文章主要為大家詳細介紹了用QT實現(xiàn)計時器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了QT實現(xiàn)計時器功能的具體代碼,供大家參考,具體內容如下

首先新建工程,Ctrl+N->Application(Qt)->Qt Widgets Application,然后進入設置界面,名稱和路徑隨意就好;Build System不考慮性能用qmake比較簡單;剩下的采用默認選項就行。

初始化結束后,其項目文件組織如下

  • Timer.pro 此為工程文件
  • Headers 用于存放頭文件的目錄
  • Sources 用于存放源代碼
  • Forms 用于存放.ui文件,即界面設計文件

雙擊Forms下面的mainwindow.ui文件,進入圖形化的UI編輯界面,左側為各種控件,中間為程序設計的主窗口。由于一個計時器不需要太大的尺寸,故而可以直接拖動窗口右下角的三個點,更改其尺寸。也可以定位到右側屬性欄的geometry,展開后將寬度和高度分別設為400和200。

然后,將左側Buttons下面的Push Button拖動到主窗口,然后在右側可看到Push Button的各種屬性。將QObject中的objectName改為pbStart;將QAbstractButton下的text改為start。一會兒用于開始計時。

在左側搜索LCD,將LCD Number拖動到主窗口,將名字改為Timer,用于顯示時間。

此時,我們最左側的選項卡選中的是第三個設計,若點擊第二個編輯,則可直接編輯窗口設計文件mainWindow.ui,然而只是讓人看看,并不讓編輯。但總之,至此已寫完了一個簡單的UI

接下來,要實現(xiàn)計時器的核心功能——計時,從而需要寫c++代碼。首先在.h文件中,寫入需要的成員變量??紤]到要實現(xiàn)計時器的功能,所以至少需要一個用于計時的時鐘和一個可以記錄秒數(shù)的整數(shù)。故而進入mainWindow.h,在private:下輸入成員,當然也不要忘了導入頭文件,最終結果為

private:
? ? Ui::MainWindow *ui;
? ? QTimer * timer;
? ? QTime * TimeRecord;

除了成員變量,還要有成員函數(shù)。其中計時需要綁定一個函數(shù),start按鈕需要綁定一個,外加時間歸零需要一個,故需三個成員函數(shù),最終mainWindow.h內容為

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QTime>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow{
? ? Q_OBJECT
public:
? ? MainWindow(QWidget *parent = nullptr);
? ? ~MainWindow();
private slots:
? ? void initTime();
? ? void updateTime();
? ? void pbStart_clicked();
private:
? ? Ui::MainWindow *ui;
? ? QTimer * timer;
? ? QTime * TimeRecord;
};
#endif // MAINWINDOW_H

定義好頭文件,接下來就要在.cpp中具體實現(xiàn)了,代碼總共不到50行,如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
? ? : QMainWindow(parent) , ui(new Ui::MainWindow)
{
? ? ui->setupUi(this);
? ? timer = new QTimer;
? ? TimeRecord = new QTime;
? ? ui->Timer->setDigitCount(8);
? ? initTime(); ? ? //令LCD顯示00:00:00
? ? //連接槽函數(shù),將timer的timeout行為,連接到updateTime函數(shù)中
? ? connect(timer, SIGNAL(timeout()), this, SLOT(updateTime()));
? ? //當點擊(clicked)pbStart時,調用函數(shù)pbStart_clicked
? ? connect(ui->pbStart, SIGNAL(clicked()), this, SLOT(pbStart_clicked()));
}

MainWindow::~MainWindow(){
? ? delete ui;
}

void MainWindow::initTime(){
? ? TimeRecord->setHMS(0, 0, 0); //時間復位為0
? ? ui->Timer->display(TimeRecord->toString("hh:mm:ss"));
}

void MainWindow::updateTime(){
? ? //每次更新時間,TimeRecord增加1
? ? *TimeRecord = TimeRecord->addSecs(1);
? ? ui->Timer->display(TimeRecord->toString("hh:mm:ss"));
}

void MainWindow::pbStart_clicked(){
? ? if (QString::compare(ui->pbStart->text(),"stop")){
? ? ? ? //當按鈕內容不為'stop'時,說明開啟計時
? ? ? ? timer->start(1000);
? ? ? ? ui->pbStart->setText("stop");//計時開始后,按鈕變?yōu)?stop'
? ? }else{
? ? ? ? timer->stop();
? ? ? ? ui->pbStart->setText("start");
? ? ? ? initTime();
? ? }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 使用代碼驗證linux子進程與父進程的關系

    使用代碼驗證linux子進程與父進程的關系

    Linux下父進程可以使用fork 函數(shù)創(chuàng)建子進程,但是當父進程先退出后,子進程會不會也退出呢?通過下面這個小實驗,我們能夠很好的看出來
    2014-02-02
  • C++深度探索虛函數(shù)覆蓋示例

    C++深度探索虛函數(shù)覆蓋示例

    虛函數(shù)主要通過V-Table虛函數(shù)表來實現(xiàn),該表主要包含一個類的虛函數(shù)的地址表,可解決繼承、覆蓋的問題,下面這篇文章主要給大家介紹了如何通過一篇文章帶你掌握C++虛函數(shù)的來龍去脈,需要的朋友可以參考下
    2022-12-12
  • C++ vector數(shù)組用法及解析

    C++ vector數(shù)組用法及解析

    這篇文章主要給大家分享的是C++ vector數(shù)組用法及解析,什么是什么是vector數(shù)組呢?下面文章將對打家做詳細介紹,感興趣的小伙伴可以參考一下
    2021-10-10
  • C++11語法之右值引用的示例講解

    C++11語法之右值引用的示例講解

    右值引用,一般是在深拷貝的類,實現(xiàn)移動構造和移動賦值,能夠解決左值引用無法做到的傳返回值的效率問題,下面跟隨小編一起學習下C++11語法之右值引用的問題
    2022-04-04
  • 用C語言實現(xiàn)掃雷小游戲

    用C語言實現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 基于Matlab實現(xiàn)多目標粘液霉菌算法的示例代碼

    基于Matlab實現(xiàn)多目標粘液霉菌算法的示例代碼

    多目標粘液霉菌算法(MOSMA),這是最近開發(fā)的粘液霉菌算法(SMA)的多目標變體,用于處理工業(yè)中的多目標優(yōu)化問題。本文將用Matlab實現(xiàn)這一算法,需要的可以參考一下
    2022-05-05
  • C語言實現(xiàn)頁面置換算法(FIFO、LRU)

    C語言實現(xiàn)頁面置換算法(FIFO、LRU)

    這篇文章主要介紹了通過C語言實現(xiàn)的兩種頁面置換算法:先進先出(FIFO)頁面置換算法和最近最久未使用(LRU)頁面置換算法。文中的代碼具有一定的學習或工作價值,快來跟隨小編學習一下吧
    2021-12-12
  • C語言文件操作詳情(一)

    C語言文件操作詳情(一)

    這篇文章主要介紹了C語言文件操作詳情,主要討論的是數(shù)據(jù)文件,通過處理的磁盤上的文件展開主題內容介紹,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-04-04
  • C語言中字符串常用函數(shù)strcat與strcpy的用法介紹

    C語言中字符串常用函數(shù)strcat與strcpy的用法介紹

    以下是對C語言中字符串常用函數(shù)strcat與strcpy的使用方法進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • c++中string類型和int類型相互轉換的幾種常用方法

    c++中string類型和int類型相互轉換的幾種常用方法

    我們在編寫程序時,經(jīng)常涉及到int與string之間的類型轉換,本文主要介紹了c++中string類型和int類型相互轉換的幾種常用方法,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08

最新評論

盖州市| 固安县| 盘锦市| 钦州市| 全南县| 全南县| 纳雍县| 荔浦县| 尖扎县| 津市市| 邯郸市| 乌拉特后旗| 安泽县| 泗洪县| 临邑县| 荔浦县| 剑阁县| 灵寿县| 永年县| 保亭| 保亭| 云南省| 云南省| 南漳县| 湟源县| 车险| 麦盖提县| 乌恰县| 福泉市| 麻江县| 彭山县| 石台县| 镇原县| 南溪县| 景德镇市| 开封市| 丰镇市| 陇西县| 仁寿县| 柳江县| 社会|