私はタイマーを持っていて、時間が特定の時間に等しいとき、すなわち。5秒、10秒、12秒。何かしてほしい。
タイマーの値を常にチェックして、自分の値と一致するかどうかを確認する最良の方法は何ですか?
私はタイマーを持っていて、時間が特定の時間に等しいとき、すなわち。5秒、10秒、12秒。何かしてほしい。
タイマーの値を常にチェックして、自分の値と一致するかどうかを確認する最良の方法は何ですか?
QTimeの時刻をポーリングすることは悪い考えです。そのためのQTimerがあり、プラットフォームのハードウェアタイマー機能を使用します。シングルショットQTimerを5秒に設定します。そのtimeout()信号をスロットに接続し、そのスロットで次の間隔のためにQTimerを再プログラムします。その一般的な概念は次のとおりです。
int intervals[] = {5000, 10000, 12000};
// Alternative:
// int intervals[] = {5000, 5000, 2000};
int currentInterval = 0;
QTimer timer; // Make sure you set this up a single-shot timer.
// ...
// slot
void handleTimeout()
{
++currentInterval;
// You should probably use a QList<int> instead in your real code and query size().
if (currentInterval >= sizeof(intervals) / sizeof(intervals[0])) {
// We're done.
return;
}
timer.start(intervals[currentInterval] - intervals[currentInterval - 1]);
// Alternative:
// timer.start(intervals[currentInterval]);
}