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 |