Qt4: Неразрешенные события таймера

Мини образец файлаmain.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();
}

Экстра миниMakefile:

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

Комплирование и исполнение:.?

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

Хорошо, а затем мой вопрос. Я сделал этот пример с целью проверки, являются ли события таймера накопительными.

Когда я выполняюmain По программе происходит следующее:

первыйtimerEvent сообщение показывается через 3 секунды, иtimerEvent() ждет персонажа.я нажимаю1 inmediatly.Через 3 секунды второйtimerEvent сообщение появляется (как и ожидалось).Я жду несколько секунд (15 или больше) и нажимаю2Третье сообщение отображается сразу (накоплено одно событие таймера).я нажимаю3 немедленно.И через 3 секунды появляется четвертое сообщение (больше событий таймера не накапливается).я нажимаюq и программа заканчивается.

Вопрос: Почему нет больше накопленных событий таймера? Зависит ли это поведение от платформы?

PD: Моя версия Qt 4.8, моя SO Ubuntu 13.04 и мое ядро (linux) 3.8.0-19-generic. Работающая графическая система - Gnome 3.

Ответы на вопрос(1)

Ваш ответ на вопрос