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