Использование таймера в Qt
Для использования таймера в Qt предназначен класс QTimer. Сначала надо задать время, по истечении которого он будет срабатывать. Так же нужно определить слот, который обработает сигнал, излученный в следствие переполнения таймера. Таким образом, обязательным условием использования QTimer есть возможность использования сигналов и слотов, значит, класс, в котором используется таймер должен быть наследником QObject. Для примера создадим простенькие часы.
В классе, который является наследником QObject (для примера используем стандартный класс главного окна ) объявляем экземпляр QTimer и слот для обработки:
#include<QTimer>
class MainWindow: public QMainWindow { Q_OBJECT public: QTimer *timer; ...
public slots: //Слот, который срабатывает при переполнении таймера void timer_overflow();
...
};
//Подключаем класс для определения текущего времени #include <QTime>
Дальше, в конструкторе окна
//Выводим значение времени в начале работы для устранения отсутствия времени
до первого срабатывания таймера
ui->label->setText(QTime::currentTime().toString());
timer = new QTimer;
//Связываем сигнал переполнения таймера со слотом QObject::connect(timer,SIGNAL(timeout()), this, SLOT(timer_overflow()));
//Задаем время срабатывания таймера (в мс) timer->start(1000); }
//Следующий метод (слот) вызывется при каждом переполнении таймера void MainWindow::timer_overflow() { //Обновляем значение времени на форме ui->label->setText(QTime::currentTime().toString()); }