QT學習筆記(14) 定時器類QTimer的使用

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

相關文章
相關標籤/搜索