Qt4: Nierozwiązane zdarzenia timera

Mini przykładowy plikmain.cpp:

#include <iostream>
#include <QCoreApplication>

class MyApp : public QCoreApplication
{
private:
    int m_idtimer;

public:
    MyApp(int nargs, char* argc[]) : QCoreApplication(nargs, argc)
    {
        m_idtimer = startTimer(3000); // 3 segs.
    }

protected:
    void timerEvent(QTimerEvent* e)
    {
        char c = '\0';

        std::cout << "timerEvent" << std::endl;
        std::cin >> c;

        if (c == 'q') {
            killTimer(m_idtimer);
            quit();
        }
    }
};

int main(int nargs, char* argc[])
{
    MyApp app(nargs, argc);

    return app.exec();
}

Extra miniMakefile:

LDFLAGS = -I/usr/include/qt4 -I/usr/include/qt4/QtCore
LDLIBS = -lQtCore

Kompilowanie i wykonanie:

$ make main
g++   -I/usr/include/qt4/QtCore  main.cpp  -lQtCore -o main
$ ./main
timerEvent
1
timerEvent
2
timerEvent
3
timerEvent
q
$

Ok, a potem moje pytanie. Próbę wykonałem w celu sprawdzenia, czy zdarzenia czasowe są akumulacyjne.

Kiedy wykonujęmain program następnej następuje:

pierwszytimerEvent wiadomość jest wyświetlana po 3 sekundach itimerEvent() czeka na postać.Naciskam1 pośrednio.3 sekundy później, drugitimerEvent pojawia się komunikat (zgodnie z oczekiwaniami).Czekam kilka sekund (15 lub więcej) i naciskam2Trzeci komunikat jest wyświetlany natychmiast (nagromadziło się jedno zdarzenie licznika).Naciskam3 natychmiast.Po 3 sekundach pojawi się czwarty komunikat (nie zgromadzono już więcej zdarzeń timera).Naciskamq i program się kończy.

Pytanie: Dlaczego nie gromadzi się więcej zdarzeń timera? Czy to zachowanie zależy od platformy?

PD: Moja wersja Qt to 4.8, moja SO Ubuntu 13.04 i moje jądro (linux) 3.8.0-19-generic. Działającym systemem graficznym jest Gnome 3.

questionAnswers(1)

yourAnswerToTheQuestion