Qt計時器使用方法詳解
本文實例為大家分享了Qt計時器的使用方法,供大家參考,具體內(nèi)容如下
計時器
在我們的日常設計程序中,經(jīng)常需要固定時間段來刷新界面或者處理一些事務,這個時候計時器就很重要。
比如說在用Qt設計一個時間顯示程序時
我們?nèi)粝胱屵@個標簽實時變動,計時器就是個很好的方法。
計時器類QTimer
我們先看看它的信號-槽機制
public Q_SLOTS: ? ? void start(int msec); ? ? void start(); ? ? void stop(); Q_SIGNALS: ? ? void timeout(QPrivateSignal);
start
函數(shù)就是說計時器的開始;
對應的stop
就是計時器結(jié)束。
timeout
就是發(fā)射信號;
在直接使用start();
時,默認一秒發(fā)送約2000次信號
在使用start(int msec)
時,則是每msec毫秒發(fā)送一次信號
代碼示例
注:為了方便顯示信號發(fā)送的頻率,我引入了i來記錄此頻率。
MainWindow::MainWindow(QWidget *parent) ? ? : QMainWindow(parent) { ? ? label = new QLabel(this); ? ? setCentralWidget(label); ? ? label->setAlignment(Qt::AlignCenter); ? ? ? //設置標簽居中顯示 ? ? timer = new QTimer; ? ? connect(timer,&QTimer::timeout,this,&MainWindow::timeoutShow); //定義計時器,并連接槽函數(shù) ? ? timer->start(); ? ? //開始計時 } MainWindow::~MainWindow() { } void MainWindow::timeoutShow() { ? ? static int i = 0; ? ? ? ? ? ? ? //記錄調(diào)用次數(shù) ? ? label->setText(QTime::currentTime().toString()+" ? ? "+QString::number(i++)); ? //顯示時間+次數(shù) }
上述代碼是沒有設定定時器的。
定時器設置為100ms的
timer->start(100);
定時器設置為1000ms的
timer->start(1000);
上圖中g(shù)if可能帶有加速效果 具體按照時間跳動對比
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言中strcpy()函數(shù)的具體實現(xiàn)及注意事項
C語言庫函數(shù)char *strcpy(char *dest, const char *src)把src所指向的字符串復制到dest,下面這篇文章主要給大家介紹了關(guān)于C語言中strcpy()函數(shù)的具體實現(xiàn)及注意事項的相關(guān)資料,需要的朋友可以參考下2022-11-11