Russian Qt Forum
Ноябрь 06, 2024, 08:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt-4.2] Как прервать QTimer::singleShot ?  (Прочитано 8380 раз)
izoomer
Гость
« : Февраль 19, 2007, 23:49 »

Запускаю singleShot
Код:

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

НО, если возникает определённое событие до окончания интервала, то выполнять слот startRepeatTimer() не нужно ... как такое решить ? как остановить singleShot принудительно, до окончания интервала ?
Записан
Black_fox
Гость
« Ответ #1 : Февраль 20, 2007, 00:20 »

Можно создать экземпляр QTimer* timer и его сделать `singleShot`. Для остановки исп. stop()

QTimer* timer = new QTimer();
timer->setSingleShot (true);
timer->start (200);
connect(...);
.....
если надо то timer->stop();
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #2 : Февраль 17, 2011, 00:22 »

тоже напоролся на эту нехорошесть для случая singleShot(). После останова QTimer::isActive() показывает false, но всё равно не останавливается и вызывает слот.
« Последнее редактирование: Февраль 17, 2011, 00:23 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.104 секунд. Запросов: 23.