Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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.

{
Code Block
}
#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);
}
{code}

Otsikkotiedosto

...

syntyy

...

automaattisesti

...

ohjelman

...

luonnin

...

yhteydessä

...

(Wizard

...

tekee).

...

Tänne

...

joudutaan

...

lisäämään

...

tarvittavat

...

muuttujat.

...

Tässä

...

tapauksessa

...

tarvitaan

...

ajastin

...

eli

...

voitaisiin

...

tehdä

...

vaikka

...

QTimer

...

omaAjastin.

...

Lisäksi

...

tarvitaan

...

muuttuja

...

laskemaan

...

ajastimen

...

timeoutteja,

...

kuten

...

alla

...

on

...

tehty

Code Block



{code}
#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

{code}