Qt實現(xiàn)定時器的兩種方法分享
更新時間:2022年11月28日 09:27:20 作者:天人合一peng
這篇文章主要為大家詳細(xì)介紹了Qt中實現(xiàn)定時器的兩種不同方法,文中的示例代碼講解詳細(xì),對我們了解Qt有一定的幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下
方法一
生成widget基類對象
添加兩個txtlabel

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void timerEvent(QTimerEvent* timer);
int timeId1;
int timeId2;
private:
Ui::Widget *ui;
};
#endif // WIDGET_H#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
//#include <QTimerEvent>
//#include <QTimer>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
timeId1 = startTimer(1000);
timeId2 =startTimer(2000);
}
void Widget::timerEvent(QTimerEvent* timer)
{
if(timer->timerId() == timeId1)
{
static int num = 1;
ui->label_3->setText(QString::number(num++));
}
else if(timer->timerId() == timeId2)
{
static int num = 1;
ui->label_4->setText(QString::number(num++));
}
}
Widget::~Widget()
{
delete ui;
}效果圖

方法二
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QTimer>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
timeId1 = startTimer(1000);
timeId2 =startTimer(2000);
QTimer* timer = new QTimer(this);
timer->start(500);
connect(timer, &QTimer::timeout,[=]()
{
static int num = 1;
ui->label_5->setText(QString::number(num++));
});
// 定時器停止
// connect(ui->pushbtn_stop, &QPushButton::clicked, timer,&QTimer::stop);
connect(ui->pushbtn_stop, &QPushButton::clicked, [=](){
timer->stop();
});
}
void Widget::timerEvent(QTimerEvent* timer)
{
if(timer->timerId() == timeId1)
{
static int num = 1;
ui->label_3->setText(QString::number(num++));
}
else if(timer->timerId() == timeId2)
{
static int num = 1;
ui->label_4->setText(QString::number(num++));
}
}
Widget::~Widget()
{
delete ui;
}效果圖

到此這篇關(guān)于Qt實現(xiàn)定時器的兩種方法分享的文章就介紹到這了,更多相關(guān)Qt定時器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VC++ loadlibrary()加載三方dll失敗, 返回錯誤碼:126的解決方法
今天在編寫VC++ loadlibrary()加載三方dll是總是失敗,并且返回錯誤碼:126,這里就為大家分享一下具體的解決方法2021-03-03
詳解C++編程中的單目運(yùn)算符重載與雙目運(yùn)算符重載
這篇文章主要介紹了詳解C++編程中的單目運(yùn)算符重載與雙目運(yùn)算符重載,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09
C/C++寬窄字符轉(zhuǎn)換與輸出的多種實現(xiàn)方法
本文主要介紹了C/C++寬窄字符轉(zhuǎn)換與輸出的多種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
CreateThread()與beginthread()的區(qū)別詳細(xì)解析
很多開發(fā)者不清楚這兩者之間的關(guān)系,他們隨意選一個函數(shù)來用,發(fā)現(xiàn)也沒有什么大問題,于是就忙于解決更為緊迫的任務(wù)去了。等到有一天忽然發(fā)現(xiàn)一個程序運(yùn)行時間很長的時候會有細(xì)微的內(nèi)存泄露,開發(fā)者絕對不會想到是因為這兩套函數(shù)用混的結(jié)果2013-09-09
C++設(shè)計模式編程中簡單工廠與工廠方法模式的實例對比
這篇文章主要介紹了C++設(shè)計模式編程中簡單工廠與工廠方法模式的實例對比,文中最后對兩種模式的優(yōu)缺點(diǎn)總結(jié)也比較詳細(xì),需要的朋友可以參考下2016-03-03

