Russian Qt Forum

Qt => Общие вопросы => Тема начата: Foss от Сентябрь 21, 2009, 14:08



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

Если кто сталкивался и решал подобные задачи - отпишитесь плз!


Название: Re: Вопрос о завершении работы приложения через какое-либо время.
Отправлено: SASA от Сентябрь 21, 2009, 14:25
Я бы завёл в app таймер. Соединил бы его сигнал timeout со слотом QCoreApplication::quit. А по каждому действию перезапускал бы таймер.


Название: Re: Вопрос о завершении работы приложения через какое-либо время.
Отправлено: Foss от Сентябрь 21, 2009, 14:40
Я бы завёл в app таймер. Соединил бы его сигнал timeout со слотом QCoreApplication::quit. А по каждому действию перезапускал бы таймер.

спасибо! в принципе - первая мысль которая мне пришла в голову полностью совпадает с вашей....но приложение довольно громоздко...и тут хотелось бы чуток схитрить ;) ... в плане отказа от обнуления таймера после каждого действия... хотя как сделать по другому не соображу....(


Название: Re: Вопрос о завершении работы приложения через какое-либо время.
Отправлено: panAlexey от Сентябрь 21, 2009, 14:56
idle?


Название: Re: Вопрос о завершении работы приложения через какое-либо время.
Отправлено: Igors от Сентябрь 21, 2009, 16:50
Может QCoreApplication::setEventFilter? Чтобы там заряжать "время последней активности". А по таймеру сравнить его с текущим.


Название: Re: Вопрос о завершении работы приложения через какое-либо время.
Отправлено: SASA от Сентябрь 22, 2009, 11:01
... в плане отказа от обнуления таймера после каждого действия... хотя как сделать по другому не соображу....(

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


Название: Re: Вопрос о завершении работы приложения че&
Отправлено: Foss от Сентябрь 22, 2009, 13:11

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


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

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


Название: Re: Вопрос о завершении работы приложения че&
Отправлено: SASA от Сентябрь 22, 2009, 19:09
кстати говоря...я правильно понял что QCoreApplication::setEventFilter или QCoreApplication::notify отслеживают действия мышки&клавы в рамках всего приложения, а не по отдельным виджетам?

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