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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос о завершении работы приложения через какое-либо время.  (Прочитано 5227 раз)
Foss
Гость
« : Сентябрь 21, 2009, 14:08 »

Вопрос следующий: есть приложение, написаное на Qt. Необходимо завершение приложения по истечении какого-либо времени (3 мин. например) с момента последнего действия пользователя.
Ищу решение в QApplication - пока безрезультатно. В QTimerе тож решения проблемы не вижу.

Если кто сталкивался и решал подобные задачи - отпишитесь плз!
Записан
SASA
Гость
« Ответ #1 : Сентябрь 21, 2009, 14:25 »

Я бы завёл в app таймер. Соединил бы его сигнал timeout со слотом QCoreApplication::quit. А по каждому действию перезапускал бы таймер.
Записан
Foss
Гость
« Ответ #2 : Сентябрь 21, 2009, 14:40 »

Я бы завёл в app таймер. Соединил бы его сигнал timeout со слотом QCoreApplication::quit. А по каждому действию перезапускал бы таймер.

спасибо! в принципе - первая мысль которая мне пришла в голову полностью совпадает с вашей....но приложение довольно громоздко...и тут хотелось бы чуток схитрить Подмигивающий ... в плане отказа от обнуления таймера после каждого действия... хотя как сделать по другому не соображу....(
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #3 : Сентябрь 21, 2009, 14:56 »

idle?
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Сентябрь 21, 2009, 16:50 »

Может QCoreApplication::setEventFilter? Чтобы там заряжать "время последней активности". А по таймеру сравнить его с текущим.
Записан
SASA
Гость
« Ответ #5 : Сентябрь 22, 2009, 11:01 »

... в плане отказа от обнуления таймера после каждого действия... хотя как сделать по другому не соображу....(

А правда, в чём состоят действия пользователя. Если в событиях клавы или мышки, то перекрываем функцию QCoreApplication::notify. Через неё проходят все евенты. Там и сбрасывать таймер.
З.Ы. Иногда приходит евент, что нажата клавиша с сканкодом 0. Глюк какой-то.
Записан
Foss
Гость
« Ответ #6 : Сентябрь 22, 2009, 13:11 »


А правда, в чём состоят действия пользователя.


именно в событиях клавы или мышки...оки доки - буду пробовать...как тока чаго назреет со знаком "плюс", сообщу Улыбающийся

кстати говоря...я правильно понял что QCoreApplication::setEventFilter или QCoreApplication::notify отслеживают действия мышки&клавы в рамках всего приложения, а не по отдельным виджетам?
« Последнее редактирование: Сентябрь 22, 2009, 13:35 от Foss » Записан
SASA
Гость
« Ответ #7 : Сентябрь 22, 2009, 19:09 »

кстати говоря...я правильно понял что QCoreApplication::setEventFilter или QCoreApplication::notify отслеживают действия мышки&клавы в рамках всего приложения, а не по отдельным виджетам?

Нет. через QCoreApplication::notify проходят все события. А  QObject::setEventFilter нужна, чтобы сначала события приходили (в функцию eventFilter) следящему объекту (не обязательно QCoreApplication), а потом тому, кому событие назначено.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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