В этом разделе перечислены свойства и методы объекта Timer

Назначение

Объект Timer предназначен для периодических действий в контексте JavaScript

Предпочтительней использовать Qt объект QTimer


Конструктор

new Timer() Создать объект


// Создать объект
var timer = new Timer();

timer.start(700); // запустить периодическое выполнение на 700 ms

timer.timeout.connect(function timeout(){
    post.log('таймер: ' + new Date().valueOf());
});



Свойства (property)

Пример использования:

// Создать объект
var timer = new Timer();

//свойство параметра чтение/запись:
var run = timer.isActive;   // Чтение
timer.interval = 1000;      // Запись

bool timer.active Только чтение
Проверить что таймер запущен


bool timer.singleShot Чтение/запись
Режим работы


int timer.interval Чтение/запись
Период/Интервал (по умолчанию 1000 ms)


int timer.elapsed Только чтение
Сколько ms осталось до эмитирования сигнала timeout()


bool timer.hasExpired Только чтение
Проверка, что в режиме однократного запуска таймер уже испустил сигнал timeout()



Сигналы

void timer.timeout();

генерируется объектом File при изменении файла

// подсоединить к сигналу timeout функцию обработчик
timer.timeout.connect(function ftimeout(){
    post.log('таймер: ' + new Date().valueOf());
});
//-----------------------------------------------------
// эквивалентно следующей конструкции
function ftimeout(){
    post.log('таймер: ' + new Date().valueOf());
}
timer.timeout.connect(ftimeout);
//-----------------------------------------------------
// удобно передавать объект в функцию в качестве this
// следующий код поясняет механизм передачи
function ftimeout(){
    post.log('таймер: ' + new Date().valueOf());
    // this - это объект Timer
    this.stop();        // остановить таймер
    this.deleteLater(); // пометить к удалению
    timer = '';         // затереть ссылку (удалить из контекста JS)
}
//                    timer - будущий объект this в обработчике
timer.timeout.connect(timer, ftimeout);

Методы

void timer.single(int ms = 0) Функция
Запустить на однократное выполнение

function ftimeout(){
    post.log('однократный таймер: ' + new Date().valueOf());
}
timer.timeout.connect(timer, ftimeout);

timer.single(700);
//-----------------------------------------------------
// равноценно
timer.interval = 700;
timer.single();

//----------------------------------------------------- Важно!!!
// Предпочтительней использовать Qt объект QTimer
var timer = new QTimer();
timer.singleShot = true; // режим разового выполнения

timer.timeout.connect(timer, function ftimeout(){
    post.log('однократный таймер: ' + new Date().valueOf());
});

timer.interval = 700;
timer.start();        // или timer.start(700);

void timer.start(int ms = 0) Функция
Запустить периодическое выполнение

function ftimeout(){
    post.log('таймер: ' + new Date().valueOf());
}
timer.timeout.connect(timer, ftimeout);

timer.start(700);
//-----------------------------------------------------
// равноценно
timer.interval = 700;
timer.start();

//----------------------------------------------------- Важно!!!
// Предпочтительней использовать Qt объект QTimer
var timer = new QTimer();   // по умолчанию режим периодического выполнения
//timer.singleShot = false; // < эта строка не нужна

timer.timeout.connect(timer, function ftimeout(){
    post.log('таймер: ' + new Date().valueOf());
});

timer.interval = 700;
timer.start();        // или timer.start(700);