Simppeli QTimer esimerkki
Esimerkki, jossa on tehty Dialog perustainen sovellus ja liitetty siihen QTimer muuttuja. QTimer on kohtuullisen helposti käytettävä ajastin. Esimerkiksi timer.start(1000); komennolla ajatimen saa käyntiin ja timer.stop(); komennolla se pysähtyy.
#include "dialog.h" #include "ui_dialog.h" //dialogin muodostin eli funktio, joka "ajetaan" ohjelman käynnistyessä //tänne on hyvä laittaa kaikki muuttujien alustukset, koska muuten ne saavat mielivaltaisia arvoja ja ohjelma ei käynnisty Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); //liitetään ajastimen timeout slotiin update eli aina kun ajastin on käynyt loppuun se lähettää timeout signaalin ja alkaa laskea taas alusta // nyt update() slotia kutsutaan aina kun tapahtuu timeout connect(&timer, SIGNAL(timeout()), this, SLOT(update())); //startin voisi tietysti laittaa esimerkiksi napuin taakse, jolloin ajatin ei "pyörisi" kuin haluttaessa timer.start(1000);//käynnisetään ajastin, joka lähettää timeoutin sekunnin välein Arvo=0;//nollataan muuttuja, johon lasketaan timeoutien lukumäärää } ****************** void Dialog::update()//tätä kutsutaan aina kun tapahtuu timeout eli kun startissa määrätty aika millisekunteja on kulunut { Arvo++; ui->editLine->setValue(Arvo); }
Otsikkotiedosto
#ifndef DIALOG_H #define DIALOG_H #include <QtGui/QDialog> #include <QTimer> //tämä pitää olla mukana, jotta ajastinta voidaan käyttää namespace Ui { class Dialog; } class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); ~Dialog(); private slots: void update(); private: Ui::Dialog *ui; QTimer timer;//ajastimen esittely jäsenmuuttujana int Arvo; }; #endif // DIALOG_H