https://www.cnblogs.com/doker/p/11150053.html
Répertoire des projets:
widget.h:
#ifndef WIDGET_H #define WIDGET_H
#include <QWidget>
#include <QTimer> // objet minuterie
espace de noms Ui {
classe Widget;
}
classe Widget: publics QWidget
{
Q_OBJECT
publique :
explicite Widget (QWidget * parent = 0 );
~ Widget ();
privés fentes:
vide on_buttonStart_clicked ();
</span><span style="color: #0000ff;">void</span><span style="color: #000000;"> on_buttonStop_clicked();
privé :
Ui :: Widget * ui;
QTimer </span>*myTimer;<span style="color: #008000;">//</span><span style="color: #008000;"> 定时器对象</span>
};
#endif // WIDGET_H
widget.cpp:
#include " widget.h " #include " ui_widget.h "
Widget :: Widget (QWidget * parent):
QWidget (parent),
ui ( nouveau Ui :: Widget)
{
ui -> setupUi ( ce );
myTimer </span>= <span style="color: #0000ff;">new</span> QTimer(<span style="color: #0000ff;">this</span><span style="color: #000000;">);
connect(myTimer,</span>&QTimer::timeout,[=<span style="color: #000000;">](){
</span><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span><span style="color: #000000;">;
i</span>++<span style="color: #000000;">;
ui</span>->lcdNumber-><span style="color: #000000;">display(i);
});
}
Widget :: ~ Widget ()
{
suppression ui;
}
// Bouton Démarrer, allez creux
vide Widget :: on_buttonStart_clicked ()
{
// lancer le temporisateur
// intervalle de 100ms
// toutes les 100ms, minuterie myTimer délai d' attente de déclenchement automatique ()
// Si la minuterie n'est pas activé avant promoteur, plusieurs clics sur le bouton de démarrage pour éviter l'erreur
IF (myTimer-> isActive () == false )
{
le myTimer -> start ( 100 );
}
}
vide Widget :: on_buttonStop_clicked ()
{
</span><span style="color: #0000ff;">if</span>(myTimer->isActive() == <span style="color: #0000ff;">true</span><span style="color: #000000;">)
{
myTimer</span>-><span style="color: #000000;">stop();
}
}
UI: