C
Qul::Timer Class
class Qul::Timer繰り返しタイマーや単発タイマーを実行する方法を提供します。詳細...
| Header: | #include <qul/timer.h> |
| Since: | Qt Quick Ultralite 1.0 |
パブリック関数
| Timer(int interval = 0) | |
| virtual | ~Timer() override |
| int | interval() const |
| bool | isActive() const |
| bool | isSingleShot() const |
| void | onTimeout(const FuncArg &f) |
| void | setInterval(int msec) |
| void | setSingleShot(bool singleShot) |
| void | start() |
| void | start(int msec) |
| void | stop() |
詳細な説明
C++11のラムダを用いた例:
Qul::Timer timer;
timer.onTimeout([]() { printf("triggered\n"); });
timer.start(1000); // will trigger every secondファンクタを使用した例:
struct Functor {
void operator()() { printf("triggered\n"); }
};
Qul::Timer timer;
timer.onTimeout(Functor());
timer.setSingleShot(true);
timer.start(60000); // trigger once in a minuteQMLオブジェクトでの例:
struct MinuteCounter : Qul::Object
{
Qul::Property<int> minutes;
void start() {
_countMinutes.onTimeout([this]() { minutes.set(minutes.get() + 1); });
_countMinutes.start(60000);
}
private:
Qul::Timer _countMinutes;
};メンバ関数のドキュメント
[explicit] Timer::Timer(int interval = 0)
新しいタイマーをインスタンス化します。
interval (デフォルト:0)を指定できます。タイマーのデフォルトの動作は繰り返しです。setSingleShot (true)を使用すると、1回のみトリガーされます。
タイマーは自動的に開始されません。start() を使用して開始してください。
[override virtual noexcept] Timer::~Timer()
タイマーを自動的に停止します
int Timer::interval() const
区間を返します
setIntervalも参照してください 。
bool Timer::isActive() const
タイマーが実行中(保留中)の場合は true を返し、そうでない場合は false を返す
bool Timer::isSingleShot() const
シングルショットタイマーの場合は `True ` を返し、それ以外の場合は `False ` を返します。
setSingleShotも参照してください 。
template <typename FuncArg> void Timer::onTimeout(const FuncArg &f)
呼び出し可能なオブジェクトをコールバックとして設定します。
引数f は、ラムダ式やstd::function、あるいはoperator()を持つ任意の構造体など、呼び出し可能なオブジェクトでなければなりません。
これは、タイマーがトリガーされるたびに呼び出されます。
この関数を複数回呼び出した場合、最後のコールバックのみが有効なままとなります。
start およびsetSingleShotも参照してください 。
void Timer::setInterval(int msec)
タイムアウト間隔をミリ秒単位でmsec
アクティブなタイマーの間隔を設定しても、次のイベントは変更されません。
intervalも参照してください 。
void Timer::setSingleShot(bool singleShot)
タイマーがsingleShot タイマーであるかどうかを設定します。
シングルショットタイマーは1回のみ作動し、シングルショット以外のタイマーはinterval ミリ秒ごとに作動します。
デフォルト値はFalse です。
「isSingleShot」も参照してください 。
void Timer::start()
タイマーを開始または再開する
タイマーがすでに動作中の場合は、一旦停止してから再起動されます。
singleShot が true の場合、タイマーは 1 回だけ起動されます。
stopも参照してください 。
void Timer::start(int msec)
タイムアウト間隔を msec ミリ秒に設定して、タイマーを開始または再開します
タイマーがすでに動作中の場合は、一旦停止してから再起動されます。
singleShot が true の場合、タイマーは 1 回だけ作動します。
stopも参照してください 。
void Timer::stop()
タイマーを停止します。
startも参照してください 。
特定の Qt ライセンスの下で利用可能です。
詳細はこちらをご覧ください。