1、html
在前面的學習筆記中,咱們已經學習定時器事件http://www.cnblogs.com/blog-ccs/p/7445323.html學習
如今,咱們學習QTimer定時器類,比較優劣。ui
2、示例代碼this
widget.hspa
1 #ifndef WIDGET_H 2 #define WIDGET_H 3 4 #include <QWidget> 5 #include <QTimer>//定時器對象 6 7 namespace Ui { 8 class Widget; 9 } 10 11 class Widget : public QWidget 12 { 13 Q_OBJECT 14 15 public: 16 explicit Widget(QWidget *parent = 0); 17 ~Widget(); 18 19 private slots: 20 void on_pushButton_start_clicked(); 21 22 void on_pushButton_stop_clicked(); 23 24 private: 25 Ui::Widget *ui; 26 27 QTimer *myTimer;//定時器對象 28 //一個對象對應一個定時器,若是想再有一個定時器,則能夠直接再建立一個定時器對象便可 29 }; 30 31 #endif // WIDGET_H
widget.cppcode
1 #include "widget.h" 2 #include "ui_widget.h" 3 4 Widget::Widget(QWidget *parent) : 5 QWidget(parent), 6 ui(new Ui::Widget) 7 { 8 ui->setupUi(this); 9 10 myTimer = new QTimer(this); 11 12 //在定時器啓動以後,每隔時間間隔都會觸發timeout()信號 13 connect(myTimer,&QTimer::timeout, 14 [=]() 15 { 16 static int i = 0; 17 i++; 18 ui->lcdNumber->display(i); 19 } 20 ); 21 22 } 23 24 Widget::~Widget() 25 { 26 delete ui; 27 } 28 29 void Widget::on_pushButton_start_clicked() 30 { 31 //啓動定時器 32 //時間間隔爲100ms 33 //每隔100ms,定時器內部myTimer自動觸發timeout()信號 34 if(myTimer->isActive() == false) 35 { 36 myTimer->start(100); 37 } 38 } 39 40 void Widget::on_pushButton_stop_clicked() 41 { 42 //定時器中止 43 if(myTimer->isActive() == true) 44 { 45 myTimer->stop(); 46 } 47 }
widget.ui界面htm