Qt - klasa QTimer czyli uruchamianie sygnału co określony odstęp czasu
Stronę tą wyświetlono już: 3422 razy
Klasa QTimer jest typowym przykładem klasy biblioteki Qt, która wykorzystuje sygnały i sloty. Celem tej klasy jest umożliwienie wywołania podpiętego pod slot uruchamiany za pomocą sygnału timeout własnego sygnału utworzonego w obiekcie klasy.
Oto przykład klasy specjalnie przygotowanej do tego celu:
Plik qclock.h:
- #ifndef QCLOCK_H
- #define QCLOCK_H
- #include <QDebug>
- #include <QObject>
- #include <QTime>
- class QClock : public QObject
- {
- Q_OBJECT
- public:
- QClock();
- public slots:
- void tick();
- };
- #endif // QCLOCK_H
Plik qclock.cpp:
- #include "qclock.h"
- QClock::QClock()
- {
- }
- void QClock::tick(){
- qDebug() << QTime::currentTime().toString("hh:mm:ss");
- }
Na koniec utworzenie obiektu klasy QClock i QTimer w pliku main.cpp:
- #include <QCoreApplication>
- #include "qclock.h"
- #include <QTimer>
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- QClock *clock = new QClock(); // obiekt klasy QClock
- QTimer *timer = new QTimer(); // obiekt klasy QTimer
- timer->setInterval(1000); // ustawiam interwał czasowy na 1000 milisekund
- QObject::connect(timer, SIGNAL(timeout()), clock, SLOT(tick())); // podpinam pod sygnał timeout obiketu timer podpinam slot tick z obiektu QClock
- timer->start(); // uruchamiam zegar
- return a.exec();
- }
Przybliżony wynik działania powyższego kodu powinien być mniej więcej taki:
"17:00:00" "17:00:01" "17:00:02" "17:00:03" "17:00:04" "17:00:05" "17:00:06"

Tytuł:
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów
Autor:
Adrian Ostrowski, Piotr Gaczkowski

Tytuł:
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet)
Autor:
Jerzy Grębosz

Tytuł:
Programowanie wieloplatformowe z C++ i wxWidgets 3
Autor:
Bartosz W. Warzocha

Tytuł:
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Autor:
Anthony Williams

Tytuł:
C++ dla bystrzaków. Wydanie VII
Autor:
Stephen R. Davis

Tytuł:
Tablice informatyczne. Podstawy C++
Autor:
Radosław Sokół

Tytuł:
Opus magnum C++11. Programowanie w języku C++ (komplet)
Autor:
Jerzy Grębosz

Tytuł:
OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV
Autor:
Adrian Kaehler, Gary Bradski

Tytuł:
C++ w 24 godziny. Wydanie VI
Autor:
Rogers Cadenhead, Jesse Liberty

Tytuł:
C++ Optymalizacja kodu. Sprawdzone techniki zwiększania wydajności
Autor:
Guntheroth Kurt