В этом разделе перечислены свойства и методы объекта 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());
});
Пример использования:
// Создать объект 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()
генерируется объектом 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);