Qt-dokumentasjon.

QTimer-klassen gir repetitive og single-shot timere. Mer.

Egenskaper.

aktiv: const bool intervall: int singleShot: bool 1 eiendom arvet fra QObject.

Offentlige funksjoner.

29 offentlige funksjoner arvet fra QObject.

Offentlige spor.

1 offentlig slot arvet fra QObject.

1 signal arvet fra QObject.

Statiske offentlige medlemmer.

7 statlige offentlige medlemmer arvet fra QObject.

Reimplemented Protected Functions.

8 beskyttede funksjoner arvet fra QObject.

Detaljert beskrivelse.

QTimer-klassen gir repetitive og single-shot timere.

QTimer-klassen gir et programmeringsgrensesnitt pa hoyt niva for timere. For a bruke det, opprett en QTimer, koble timeout () -signalet til de relevante sporene, og ring start (). Fra da av vil det avgir timeout () signalet med jevne mellomrom.

Eksempel pa en sekunds (1000 millisekond) timer (fra Analog Clock-eksempelet):

Fra da av blir oppdateringen () spor kalt hvert sekund.

Du kan stille inn en tidsur til tidsavbrudd bare en gang ved a ringe setSingleShot (true). Du kan ogsa bruke den statiske QTimer :: singleShot () -funksjonen til a ringe et spor etter et spesifisert intervall:

I multithreaded applikasjoner kan du bruke QTimer i en hvilken som helst trad som har en hendelseslokke. For a starte en hendelseslokke fra en ikke-GUI-trad, bruk QThread :: exec (). Qt bruker tidtakerens tradaffinitet for a bestemme hvilken trad som vil avgir timeout () -signalet. Pa grunn av dette ma du starte og stoppe timeren i traden; det er ikke mulig a starte en timer fra en annen trad.

Som et spesielt tilfelle vil en QTimer med en timeout pa 0 utelukkes sa snart alle hendelsene i vindussystemets arrangementsko har blitt behandlet. Dette kan brukes til a gjore tungt arbeid mens du gir et snill brukergrensesnitt:

processOneThing () vil fra da av bli kalt gjentatte ganger. Den skal skrives pa en slik mate at den alltid kommer raskt tilbake (vanligvis etter a ha behandlet en datapost) slik at Qt kan levere hendelser til widgets og stoppe timeren sa snart den har gjort alt sitt arbeid. Dette er den tradisjonelle maten a gjennomfore tungt arbeid i GUI-applikasjoner; multithreading blir na tilgjengelig pa flere og flere plattformer, og vi forventer at QTimers pa null millisekund gradvis vil bli erstattet av QThreads.

Noyaktighet og timeropplosning.

Timere vil aldri ga ut tidligere enn den angitte tidspunktet for utkobling, og de er ikke garantert a ga ut med den angitte noyaktige verdien. I mange situasjoner kan de ga ut sent etter en tidsperiode som avhenger av noyaktigheten til systemtimerne.

Noyaktigheten til timere avhenger av det underliggende operativsystemet og maskinvaren. De fleste plattformer stotter en opplosning pa 1 millisekund, selv om noyaktigheten til timeren ikke vil v re lik denne opplosningen i mange virkelige situasjoner.

Hvis Qt ikke klarer a levere det forespurte antallet timerklikk, vil det tydelig kaste bort noen.

Alternativer til QTimer.

Et alternativ til a bruke QTimer er a ringe QObject :: startTimer () for objektet ditt og reimplementere QObject :: timerEvent () hendelseshandterer i klassen din (som ma arve QObject). Ulempen er at timerEvent () ikke stotter slike hoyt niva funksjoner som single-shot timer eller signaler.

Et annet alternativ til a bruke QTimer er a bruke QBasicTimer. Det er vanligvis mindre tungvint enn a bruke QObject :: startTimer () direkte. Se Timers for en oversikt over alle tre tiln rmingene.

Noen operativsystemer begrenser antall timere som kan brukes; Qt prover a omga disse begrensningene.

Eiendomsdokumentasjon.

aktiv: const bool.

Denne boolske eiendommen er sann hvis timeren kjorer; ellers falsk.

Denne eiendommen ble introdusert i Qt 4.3.

intervall: int.

Denne egenskapen holder tidsintervallet i millisekunder.

Standardverdien for denne egenskapen er 0. En QTimer med et tidsavbruddintervall pa 0 vil utelukkes sa snart alle hendelsene i vindussystemets arrangementsko har blitt behandlet.

Innstilling av intervallet for en aktiv timer endrer sin timerId ().

singleShot: bool.

Denne egenskapen gjelder om timeren er en single-shot timer.

En single-shot timer brenner bare en gang, ikke-single-shot timere brann hvert intervall millisekunder.

Medlemsfunksjon Dokumentasjon.

QTimer :: QTimer (QObject * foreldre = 0)

Konstruerer en timer med den oppgitte foreldre.

Odelegger timeren.

[statisk] void QTimer :: singleShot (int msec, QObject * mottaker, const char * medlem)

Denne statiske funksjonen kaller et spor etter et gitt tidsintervall.

Det er veldig praktisk a bruke denne funksjonen fordi du ikke trenger a bry deg med en timerEvent eller opprett et lokalt QTimer-objekt.

Dette proveprogrammet avsluttes automatisk etter 10 minutter (600.000 millisekunder).

Mottakeren er mottaksobjektet og medlemmet er sporet. Tidsintervallet er msek millisekunder.

[slot] void QTimer :: start (int msec)

Starter eller starter om timeren med et tidsintervall pa msek millisekunder.

Hvis timeren allerede kjorer, blir den stoppet og startet pa nytt.

Hvis singleShot er sant, vil timeren bare bli aktivert en gang.

[slot] void QTimer :: start ()

Denne funksjonen overbelaster start ().

Starter eller starter om timeren med tidsavbrudd angitt i intervall.

Hvis timeren allerede kjorer, blir den stoppet og startet pa nytt.

Hvis singleShot er sant, vil timeren bare bli aktivert en gang.

[slot] void QTimer :: stop ()

Stopper timeren.

[signal] tomrom QTimer :: timeout ()

Dette signalet sendes ut nar timeren gar ut.

[virtuelt beskyttet] ugyldig QTimer :: timerEvent (QTimerEvent * e)

int QTimer :: timerId () const.

Returnerer ID for timeren hvis timeren kjorer; ellers returnerer -1.