Russian Qt Forum

Qt => Общие вопросы => Тема начата: izoomer от Февраль 19, 2007, 23:49



Название: [qt-4.2] Как прервать QTimer::singleShot ?
Отправлено: izoomer от Февраль 19, 2007, 23:49
Запускаю singleShot
Код:

       QTimer::singleShot( 200, this, SLOT( startRepeatTimer() ) );

НО, если возникает определённое событие до окончания интервала, то выполнять слот startRepeatTimer() не нужно ... как такое решить ? как остановить singleShot принудительно, до окончания интервала ?


Название: [qt-4.2] Как прервать QTimer::singleShot ?
Отправлено: Black_fox от Февраль 20, 2007, 00:20
Можно создать экземпляр QTimer* timer и его сделать `singleShot`. Для остановки исп. stop()

QTimer* timer = new QTimer();
timer->setSingleShot (true);
timer->start (200);
connect(...);
.....
если надо то timer->stop();


Название: Re: [qt-4.2] Как прервать QTimer::singleShot ?
Отправлено: serg_hd от Февраль 17, 2011, 00:22
тоже напоролся на эту нехорошесть для случая singleShot(). После останова QTimer::isActive() показывает false, но всё равно не останавливается и вызывает слот.