Simppeli QTimer esimerkki
Tee Esimerkki, jossa on tehty Dialog perustainen sovellus ja liitä siihen Dial objekti, tee alla kuvatut muutokset Dialog.cpp ja .h tiedostoihinliitetty 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.
Code Block |
---|
#include "dialog.h" #include "ui_dialog.h" //dialogin muodostimeen Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); timer = new QTimer(this);//luo uusi ajastin//liitetään ajastimen timeout slotiin update eli aina kun ajastin on käynyt loppuun se lähettää timeout signaalin ja alkaa laskea taas alusta //liitä ajastimen timeout slotiin update nyt update() slotia kutsutaan aina kun tapahtuu timeout connect(&timer, SIGNAL(timeout()), this, SLOT(update())); timer->start(1000);//käynnistä ajastin, timeout sekunnin välein Arvo=0;//muuttuja joka viedään dialeditline objektille käyttöliittymään } Dialog::~Dialog() { delete ui; } ****************** void Dialog::update()//slot joka laukeaa ajastimen timeoutistatätä kutsutaan aina kun tapahtuu timeout eli kun startissa määrätty aika millisekunteja on kulunut { Arvo++; ui->dial->setValue(Arvo); } |
...
Code Block |
---|
#ifndef DIALOG_H #define DIALOG_H #include <QtGui/QDialog> #include <QTimer> 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;//osoitinajastimen ajastimeenesittely int Arvo; }; #endif // DIALOG_H |