본문 바로가기
QT and Symbian

QT v4.x를 기반으로 startTimer, killTimer 예제

by leo21c 2025. 6. 30.

Qt 4.x에서 startTimer()와 killTimer()를 사용하는 기본적인 예제를 소개할게요. 이 방식은 QObject의 기능을 직접 활용하는 저수준 타이머 방식으로, timerEvent()를 재정의해서 타이머 이벤트를 처리합니다.

#include <QApplication>
#include <QWidget>
#include <QTimerEvent>
#include <QDebug>

class MyWidget : public QWidget {
    Q_OBJECT

public:
    MyWidget(QWidget *parent = nullptr) : QWidget(parent), timerId(0) {
        // 1초 간격으로 타이머 시작
        timerId = startTimer(1000); // 1000ms
    }

protected:
    void timerEvent(QTimerEvent *event) override {
        if (event->timerId() == timerId) {
            qDebug() << "타이머 이벤트 발생!";
            count++;

            if (count >= 5) {
                killTimer(timerId);
                qDebug() << "타이머 종료!";
            }
        }
    }

private:
    int timerId;
    int count = 0;
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    MyWidget w;
    w.show();
    return app.exec();
}

🔍 설명

  • startTimer(1000)은 1초 간격으로 타이머를 시작하고, 고유한 타이머 ID를 반환합니다.
  • timerEvent()는 타이머가 발생할 때마다 호출되며, timerId를 비교해 원하는 타이머인지 확인합니다.
  • killTimer(timerId)를 호출하면 해당 타이머가 종료됩니다.

이 방식은 QTimer보다 더 직접적인 제어가 가능하지만, 여러 타이머를 동시에 사용할 경우 timerId를 잘 관리해야 해요.

필요하다면 QBasicTimer를 활용한 예제도 보여줄 수 있어요. 계속 이어서 볼까요?

 

 

LIST

'QT and Symbian' 카테고리의 다른 글

QT v4.x 기반 TcpServer 예제  (0) 2025.06.30
싱글샷 타이머 사용  (0) 2025.06.30
QT v4.x Queue 사용  (0) 2025.06.30
QT Plugins 폴더 Windows 배포 문제  (0) 2020.07.24
Creator Full mode 닫는 단축키  (0) 2015.12.31