Jak wykryć, że aplikacja GUI była bezczynna, (bez interakcji użytkownika) przez pewien okres czasu?Jak wykryć, czy aplikacja Qt GUI była bezczynna w samej aplikacji (Qt)?
Mam liczbę ekranów Qt, chcę przynieść ekran daty i czasu, gdy aplikacja jest bezczynna przez 5 sekund, a kiedy kliknę na ekranie data-godzina, powinien powrócić do ostatniego ekranu.
Obecnie używam poniższego kodu, teraz, jak sprawdzić, czy system jest bezczynny przez 5 sekund, przynieść nowy formularz, a kiedy jakaś machinalna mysz/kliknij powinna powrócić do ostatniej formy.
CustomEventFilter::CustomEventFilter(QObject *parent) :
QObject(parent)
{
m_timer.setInterval(5000);
connect(&m_timer,SIGNAL(timeout()),this,SLOT(ResetTimer()));
}
bool CustomEventFilter::eventFilter(QObject *obj, QEvent *ev)
{
if(ev->type() == QEvent::KeyPress ||
ev->type() == QEvent::MouseMove)
{
ResetTimer();
return QObject::eventFilter(obj, ev);
}
else
{
}
}
bool CustomEventFilter::ResetTimer()
{
m_timer.stop(); // reset timer
}
A moja main.cpp wygląda następująco:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainForm w;
w.show();
CustomEventFilter filter;
a.installEventFilter(&filter);
return a.exec();
}
Dzięki.
Na czym polega problem z wyświetlaniem/zamykaniem formularza? – Macke
Musisz być bardziej konstruktywny w swoich pytaniach/komentarzach, nie tylko "daj mi kod plz" i "nie działa, pomoc?". Nie możemy wykonać całej twojej pracy, ani nie jesteśmy wystarczająco sprytni, aby dowiedzieć się, co działa, a co nie, jeśli nie dowiesz się, jak dostarczyć więcej informacji o problemie. – Macke
@Macke: Dziękuję Macke. Będę o tym pamiętać następnym razem, zadając pytania w SO. – user662285